2016-10-05 40 views
0

我想使用RxAndroidBle lib(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)對於某些藍牙設備返回null。但其他一些(三星J5 Android 6)不返回空值。這就是我在不同的地方尋找bug的原因。但它的簡單,只需添加

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

現在它不會中斷掃描了。