2016-10-05 8 views
0

私はRxAndroidBleライブラリ(https://github.com/Polidea/RxAndroidBle)を使用しようとしています。私は、アプリを起動し、BLEデバイスをスキャンしたい。見つかったデバイスをLogCatに印刷したいと思います。これどうやってするの?RxAndroidBleスキャン

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()); 
} 

答えて

0

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(); 

編集:私は、これはスキャンを壊すことに、気づいた何 。 BleScanResult.getBleDevice().getName().equals("BleName") がスキャンを中断した場合と比較しても同じです。それは3つか5つのデバイスのように戻ってくるだけです。

編集2: 前の編集を終了します。誰かがおそらく同じ問題を抱えているでしょう。一部の携帯電話(LG G4 Android 6)は、一部のBluetoothデバイスでnullを返します。しかし、いくつかの他の(サムスンJ5のAndroid 6)はnull値を返しません。それが私に別の場所でバグを探すのです。しかし、その単純な、ちょうど追加

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

今、それはもはやスキャンを中断しません。

関連する問題