2015-03-06 21 views
11

MAC adresini kullanarak bir BLE aygıtına bağlanmaya çalışıyorum.Android BLE GATT_ERROR (133) aygıta bağlanmakta

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

benim BLE cihaz kapalıyken dahi status = 133 ve newState = 2ile BluetoothGattCallback.onConnectionStateChange bir geri arama olsun.

NewState = 2. cihaz ve durum için bağlı olduğu anlamına gelir BluetoothProfile.STATE_CONNECTED belirtir = 133 GATT_ERROR (yerine durumu = 0 BAŞARıLı)

I geri arama kaydı başarısız hata olsun yok .

Cihaz: Bu sorunun nedeni bu olabilir ne Bir artı bir (Android 4.4)

Herhangi işaretçiler yararlı olacaktır.

Not: Sorun tüm aygıtlarda gerçekleşmiyor. Her şey yığın izleme aşağıda bulabilirsiniz Android 5.0

ile Nexus 5'teki iyi çalışıyor gibi görünüyor:

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

Bu soru için önerilen yanıtlara bakın: http://stackoverflow.com/questions/27280402/every-connection-request-is-being-treated-as-direct-connect-request-android -bl – PaulT

+0

Bunu anlayabilir misiniz? Aynı problemim var. – Borzh

cevap

3

Bazı cihazlar Bluetooth LE etkileşimleri UI iş parçacığı üzerinde çalıştırılmak üzere gerektirir. Yani böyle bir şey çalışıyorum tavsiye ederim: siz de Activity.runOnUiThread kullanabilirsiniz Tabii

// 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); 
} 
}); 

. Kaynak: https://stackoverflow.com/a/23478737

İlgili konular