在Polidea记录scanResult - RxAndroidBle扫描

问题描述 投票:2回答:2

我试图使用RxAndroidBle LIB(https://github.com/Polidea/RxAndroidBle)。我希望应用程序的启动和扫描BLE装置。我想在logcat的打印找到的设备。我怎样才能做到这一点?

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());
}
android android-activity android-bluetooth android-ble
2个回答
1
投票

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。但另外一些人(三星的Android J5 6)不返回空值。这就是让我寻找在不同的地方错误。但其操作简单,只需添加

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

现在它不会碎掉扫描。


0
投票

在科特林你可以这样做:

Disposable scanSubscription = rxBleClient.scanBleDevices(
        new ScanSettings.Builder()
            // .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) // change if needed
            // .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) // change if needed
            .build()
        // add filters if needed
)
    .subscribe(
        scanResult -> {
            // Process scan result here.
            Log.v(TAG,"Ble device address: " it.bleDevice.macAddress
        },
        throwable -> {
            // Handle an error here.
        }
    );

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

companion object {
   const val TAG = "your_tag_here"
}
© www.soinside.com 2019 - 2024. All rights reserved.