2015-03-06 29 views
11

Tôi đang cố gắng kết nối với thiết bị BLE bằng địa chỉ MAC.Android BLE GATT_ERROR (133) khi kết nối với thiết bị

BluetoothDevice device = bluetoothAdapter.getRemoteDevice(rememberedDeviceAddress) 
bluetoothDevice.connectGatt(context, false, bluetoothGattCallback); 

tôi nhận được một cuộc gọi lại trong BluetoothGattCallback.onConnectionStateChange với status = 133newState = 2ngay cả khi thiết bị BLE của tôi là tắt.

newState = 2 đề cập đến BluetoothProfile.STATE_CONNECTED có nghĩa là tôi đang kết nối với các thiết bị và tình trạng = 133 là GATT_ERROR (thay vì status = 0 SUCCESS)

tôi không nhận được Không thể đăng ký callback lỗi .

Thiết bị: Một cộng một (Android 4.4)

Mọi gợi ý về những gì có thể gây ra sự cố này sẽ hữu ích.

Lưu ý: Sự cố không xảy ra trên tất cả thiết bị. Tất cả mọi thứ dường như được làm việc tốt trên Nexus 5 với Android 5.0

Hãy tìm thấy bên dưới stack trace:

03-06 13:00:11.994: D/BluetoothGatt(26771): registerApp() 
03-06 13:00:11.994: D/BluetoothGatt(26771): registerApp() - UUID='uuid comes here' 
03-06 13:00:12.004: D/BluetoothGatt(26771): onClientRegistered() - status=0 clientIf=5 
03-06 13:00:42.004: D/BluetoothGatt(26771): onClientConnectionState() - status=133 clientIf=5 device='device id comes here' 
+1

Hãy xem câu trả lời được đề xuất cho câu hỏi này: http://stackoverflow.com/questions/27280402/every-connection-request-is-being-treated-as-direct-connect-request-android -bl – PaulT

+0

Bạn có thể tìm ra điều này không? Tôi có cùng một vấn đề. – Borzh

Trả lời

3

Một số thiết bị yêu cầu Bluetooth LE tương tác được chạy trên thread UI. Vì vậy, tôi sẽ khuyên bạn nên thử một cái gì đó như thế này:

// Create handler for main thread where mContext is application context 
mHandler = new Handler(mContext.getMainLooper()); 
... 
// Connect to BLE device from mHandler 
mHandler.post(new Runnable() { 
@Override 
public void run() { 
    mBTGatt = mBTDevice.connectGatt(mContext, false, mGattCallback); 
} 
}); 

Tất nhiên bạn cũng có thể sử dụng Activity.runOnUiThread. Nguồn: https://stackoverflow.com/a/23478737

Các vấn đề liên quan