Ich habe ein Projekt mit beidenAndroid BluetoothDevice createBond Berechtigungsfehler
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Darin ich einen Anruf für BT-Geräte scannen mit (vereinfacht):
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);
Der Kern ist, dass ich scannen für ein Gerät mit meiner Dienstleistung, und für jetzt nur Bindung an die erste, die ich sehe. Alle meine Eigenschaften und Deskriptoren verwenden Lese-/Schreibberechtigungen (ich weiß nicht, ob das wichtig ist). Was ich am Ende sehen ist die Paarung Bildschirme auf beiden Geräten aber später, als ich die connectGatt
Methode verwende ich nicht mit dem folgenden Fehler:
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
Wenn auf der anderen Seite habe ich die BT-Einstellungen öffnen und die Geräte verbinden von dort funktioniert alles super! connectGatt
funktioniert und ich kann Daten lesen/schreiben wie ich es will.
Was mache ich falsch mit createBond()
?
Ich habe genau das gleiche Problem gerade jetzt. Hast du eine Lösung gefunden? –
Es scheint, dass wir es getan haben, aber immer noch die letzten Details ausgespült haben. Siehe Antwort unten. – TheHebrewHammer