我有兩個的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