我有两个的Android BluetoothDevice类createBond权限错误
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
一个项目在它我拨打电话使用扫描BT设备(简体):
final BluetoothLeScanner scanner = BluetoothAdapter.getDefaultAdapter()
.getBluetoothLeScanner()
ArrayList<ScanFilter> scanFilters = ArrayList<>();
scanFilters.add(new ScanFilter.Builder()
.setServiceUuid(new ParcelUuid(MY_SERVICE_UUID))
.build());
ScanSettings scanSettings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.build();
ScanCallback scanCallback = new ScanCallback() {
@Override
void onScanFailed(int errorCode) {}
@Override
void onScanResult(int callbackType, ScanResult result) {
result.getDevice().createBond();
scanner.stopScan(this);
}
@Override
public void onBatchScanResults(List<ScanResult> results) {}
};
scanner.startScan(scanFilters, scanSettings, scanCallback);
要点是,我扫描对于我的服务的设备,现在只是粘在我看到的第一个设备上。我所有的特征和描述符都使用读/写加密权限(我不知道这是否重要)。我最后看到的是两个设备上的配对屏幕,但后来当我用connectGatt
方法我失败,出现以下错误:
E/bt_btif: bta_gattc_cache_load: can't open GATT cache file /data/misc/bluetooth/gatt_cache_76fe0b7bf8dd for reading, error: No such file or directory
E/bt_att: gatt_disc_cmpl_cback() - Unable to register for service changed indication
如果,另一方面,我打开BT设置和粘接设备从那里,一切都很好! connectGatt
的作品,我可以随心所欲地读/写数据。
我在做什么错createBond()
?
我现在有完全相同的问题。你找到解决方案吗? –
看起来我们已经做到了,尽管仍然冲淡了最终的细节。见下面的答案。 – TheHebrewHammer