Android 6.0上的Bluetooth Low Energy startScan找不到设备

我正在使用Nexus 5开发具有低功耗蓝牙功能的应用程序。该应用程序可在Lollipop上使用,现在不能在棉花糖上使用。我在清单和活动的运行时设置ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION权限。


这是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);

它开始扫描,但未找到任何设备。请帮我!!!!


慕容708150
浏览 1118回答 3
3回答

慕无忌1623718

就像@Jacopo Tosi一样,您必须要求位置权限。您可以在这里阅读操作方法。并且您还必须打开位置。我不知道为什么这样做。但这是我设法使其运作的唯一方法。

至尊宝的传说

它并没有真正使它变得更好,但是其背后的原因是BLE信标经常被用作一种室内GPS来跟踪用户位置。因此,您必须与用户进行尴尬的交谈才能请求该权限,并保证您不会尝试跟踪它们,尽管他们只是将其授予了心率监视器
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android