2017-03-02 78 views
2

我正在BLE 4.2設備上運行具有自定義特徵的自定義服務。我正在研究一個android應用程序來讀取/寫入特徵等。我嘗試的第一件事是讀取特徵。Android BLE服務缺失特徵

我定義了一個UUID列表: List chars = new ArrayList <>();

我使用我知道的服務創建服務UUID: mCustomService = mBluetoothGatt.getService(MY_SERVICE_UUID);

我加載列表與4知道,從我服務的UUID:

chars.clear(); 
chars.add(UUID1); 
chars.add(UUID2); 
chars.add(UUID3); 
chars.add(UUID4); 

I read the first characteristic from the end of my list: 
BluetoothGattCharacteristic mReadCharacteristic = mCustomService.getCharacteristic(chars.get(chars.size() - 1)); 
    if(mReadCharacteristic != null) 
     mBluetoothGatt.readCharacteristic(mReadCharacteristic); 

mReadCharacteristic始終返回null,該服務不包含我的特點。

如果我使用BLE「嗅探器」應用程序,那麼我會看到所有的特徵。

感謝

豐富

PS我不能在這裏找出格式!

回答

0

我有一個類似的設置 - 具有自定義服務和特徵的設備 - 雖然設備是BLE 4.0。在你的應用程序,或許你正在做這件事,但這個問題不提它 - 但你叫

mBluetoothGatt.discoverServices();

這然後觸發回調onServicesDiscovered。我在onServicesDiscovered處理程序中有類似的代碼,它工作正常。

public void onServicesDiscovered(BluetoothGatt gatt, int status) { if (status == BluetoothGatt.GATT_SUCCESS) { // getService // getCharactistics } // etc. }