我正在使用Nexus 5开发一个基于蓝牙低功耗的应用程序。在Lollipop版本上可以运行,但现在在Marshmallow版本上无法工作。 我在清单文件中设置了ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION权限,并在Activity运行时设置了这些权限。
这是ScanFilters的列表:
mScanFilterTest = new ScanFilter.Builder().build();
mScanFilter = new ArrayList<ScanFilter>();
mScanFilter.add(mScanFilterTest);
以下是设置:
mScanSettings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_POWER).setReportDelay(0)
.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES).build();
这些是我的回调函数:
mBLEScan = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
Log.i(TAG, "******************************************");
Log.i(TAG, "The scan result " + result);
Log.i(TAG, "------------------------------------------");
}
};
这是我的呼叫:mBluetoothLeScanner.startScan(mScanFilter, mScanSettings, mBLEScan);
扫描已开始,但未发现任何设备。请帮忙!!!