シナリオがある:BluetoothGattは:onClientConnectionState()ステータスを返す= 133
私はアプリケーションを実行android dongleを有し、他方の側には私はesp8266に取り付けHM10 LEのBluetoothを有します。
私はHM10に私のアプリを通してアンドロイドドングルをブルートゥースで接続しようとしています。
アンドロイドドングルを別のHM10に接続しても、その逆でも同じHM10と他のドングルを接続しても、数週間でうまくやったことがあります。
問題:一定期間の後
は、接続試行中に、私は、ステータス133で切断された状態を受け取るために始めましたが、いくつかの接続は、接続が正常に起こった再試行の後。
特定のアンドロイドドングル(問題のあるドングルと呼ぶ)を特定のHM10(問題のあるHM10と呼ぶ)に接続できません。私はいつも133を受け取り、接続することができない何百回もの再試行をしています。
しかし、別のドングルを使用すると、「問題のある」HM10に接続することができます。また、別のHM10を使用すると、「問題のある」ドングルに接続することができます。
最後に、別のHM10を問題のあるドングルに接続すると、その直後に問題のあるドングルに問題のあるHM10を接続することができます。しかし、私はそれを切断すると、私は再び接続することはできません。
特定のBLEデバイスに接続しようとすると、常にステータス= 133の切断状態が表示されます。
私はそれを解決するために試したこと:
これは、通常の使用時に、HM10は、およびその逆で回すことができる、と言うことが重要です。しかし、Gattコールバックの "onConnectionStateChange"で切断イベントを取得すると、私はいつもgatt(deviceGatt.close();)を閉じます。
私はいくつかのポストでデバイスガットをリフレッシュして閉じます。また、それをやって「M:
//inside the onConnectionStateChange on the BluetoothGattCallback:
case BluetoothProfile.STATE_DISCONNECTED:
mConnectionState = ConnectionStatus.DISCONNECTED;
readCharacteristic = null;
writeCharacteristic = null;
if (status != BluetoothGatt.GATT_SUCCESS) {
if (status == 133) {
refreshDeviceCache(deviceGatt);
}
}
deviceGatt.close();
deviceGatt = null;
break;
}
private boolean refreshDeviceCache(BluetoothGatt gatt){
try {
BluetoothGatt localBluetoothGatt = gatt;
Method localMethod = localBluetoothGatt.getClass().getMethod("refresh", new Class[0]);
if (localMethod != null) {
boolean bool = ((Boolean) localMethod.invoke(localBluetoothGatt, new Object[0])).booleanValue();
return bool;
}
}
catch (Exception localException) {
}
return false;
}
私はまた、ワイヤレス& Networks->詳細 - >ネットワーク設定のリセット>アンドロイド設定]でキャッシュをきれいにするつのポストで読みますが、問題はまだそれをやった後に存在します。
以下のログを見つけてください:ここでは
11-27 11:16:49.353 8104-8130/? D/bt_hci_h5: hci_hal_h5 h5_transmit_data, data type: 1
11-27 11:16:49.353 8104-8130/? D/bt_hci_h5: cmd opcode = 0xfc19
11-27 11:16:49.353 8104-8130/? D/bt_hci_h5: hci_hal_h5 h5_int_transmit_data_cb data type: 5
11-27 11:16:49.353 8104-8144/? W/bt_btif: bta_gattc_conn_cback() - cif=3 connected=0 conn_id=3 reason=0x0008
11-27 11:16:49.353 8104-8144/? W/bt_btif: bta_gattc_conn_cback() - cif=4 connected=0 conn_id=4 reason=0x0008
11-27 11:16:49.353 8104-8144/? W/bt_btif: bta_gattc_conn_cback() - cif=5 connected=0 conn_id=5 reason=0x0008
11-27 11:16:49.353 8104-8144/? W/bt_btif: bta_gattc_conn_cback() - cif=6 connected=0 conn_id=6 reason=0x0008
11-27 11:16:49.353 8104-8144/? W/bt_btif: bta_gattc_conn_cback() - cif=7 connected=0 conn_id=7 reason=0x0008
11-27 11:16:49.353 8104-8144/? E/rtk_parse: rtk_delete_le_profile, hci_conn not exist with handle ffff
11-27 11:16:49.353 8104-8144/? I/bt_btm_sec: btm_sec_disconnected clearing pending flag handle:16 reason:8
11-27 11:16:49.354 8104-8126/? D/BtGatt.GattService: onConnected() - clientIf=7, connId=0, address=34:15:13:E6:50:8F
11-27 11:16:49.354 8104-8130/? D/bt_hci_h5: hci_hal_h5 h5_int_transmit_data_cb data type: 5
11-27 11:16:49.354 24277-24288/? D/BluetoothGatt: onClientConnectionState() - status=133 clientIf=7 device=34:15:13:E6:50:8F
11-27 11:16:49.358 24277-24288/? D/BluetoothComm: Error connecting to device: com.polidea.rxandroidble.exceptions.BleDisconnectedException: Disconnected from 34:15:13:E6:50:8F
11-27 11:16:49.359 24277-24288/? W/System.err: com.polidea.rxandroidble.exceptions.BleDisconnectedException: Disconnected from 34:15:13:E6:50:8F
11-27 11:16:49.359 24277-24288/? W/System.err: at com.polidea.rxandroidble.internal.connection.RxBleGattCallback$2.onConnectionStateChange(RxBleGattCallback.java:76)
11-27 11:16:49.359 24277-24288/? W/System.err: at android.bluetooth.BluetoothGatt$1.onClientConnectionState(BluetoothGatt.java:184)
11-27 11:16:49.359 24277-24288/? W/System.err: at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:70)
11-27 11:16:49.359 24277-24288/? W/System.err: at android.os.Binder.execTransact(Binder.java:565)
11-27 11:16:49.362 24277-24324/? D/BluetoothManager: getConnectionState()
11-27 11:16:49.362 24277-24324/? D/BluetoothManager: getConnectedDevices
11-27 11:16:49.367 24277-24324/? D/BluetoothGatt: close()
11-27 11:16:49.367 24277-24324/? D/BluetoothGatt: unregisterApp() - mClientIf=7
11-27 11:16:49.368 8104-8158/? D/BtGatt.GattService: unregisterClient() - clientIf=7
11-27 11:16:49.465 8104-8130/? D/bt_vendor_uart: op for 7
11-27 11:16:49.465 8104-8130/? D/bt_hci_h5: hci_hal_h5 h5_transmit_data, data type: 1
11-27 11:16:49.465 8104-8130/? D/bt_hci_h5: cmd opcode = 0xfc94
はbtsnoop_hciのスクリーンショットです。CFA:
//アップデート - ここでは、ファイルのログ
を追加することは、私は、この問題についての記事をたくさん読んでますがまたはdoesnのlog file
//最終更新
です提供されたソリューションが提供されなかったか、提供されたソリューションが機能しませんでした。
私はオプションがないので、誰かが私を助けてくれるのだろうかと思います。何かご意見は?
hciログをアップロードできますか? – Emil
@Emil投稿をログファイルで更新しました。ご協力いただきありがとうございます。 –