2016-10-05 3 views
0

J'essaie d'utiliser le RxAndroidBle lib (https://github.com/Polidea/RxAndroidBle). Je veux que l'application démarre et analyse les périphériques BLE. Je veux imprimer les périphériques trouvés dans le LogCat. Comment puis-je faire ceci?RxAndroidBle Scanning

RxBleClient rxBleClient; 
RxBleScanResult rxBleScanResult; 
private Subscription scanSubscription; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    rxBleClient = RxBleClient.create(this); 
    Subscription scanSubscription = rxBleClient.scanBleDevices().subscribe(
     rxBleScanResult.getBleDevice().getMacAddress()); 
} 

Répondre

0

de http://polidea.github.io/RxAndroidBle/.

Subscription scanSubscription = rxBleClient.scanBleDevices().subscribe(
     rxBleScanResult -> { 
      // Process scan result here. 
      Log.e("MainActivity","FOUND :"+ rxBleScanResult.getBleDevice().getName()); 
     }, 
     throwable -> { 
      // Handle an error here. 
     } 
    ); 

// When done, just unsubscribe. 
scanSubscription.unsubscribe(); 

Edit: Ce que je constate, que ce casse l'analyse. Même quelque chose comme la comparaison si BleScanResult.getBleDevice().getName().equals("BleName") casse l'analyse. Il revient juste comme 3 ou 5 appareils et rien d'autre ne vient.

Éditer 2: Je vais quitter l'édition précédente. Quelqu'un aura probablement le même problème. Certains téléphones (LG G4 Android 6) retournent null pour certains appareils Bluetooth. Mais certains autres (Samsung J5 Android 6) ne renvoient pas une valeur nulle. C'est ce qui me fait chercher un bug dans un endroit différent. Mais c'est simple, il suffit d'ajouter

if(BleScanResult.getBleDevice().getName()!=null) 

et maintenant il ne rompt plus l'analyse.