2017-07-24 2 views
0

Je suis en train d'écrire une caractéristique d'un périphérique BLE. Selon la documentation, la caractéristique est capable de lire et d'écrire, avec des usages différents. J'avais déjà réussi à en lire mais j'ai quelques problèmes avec l'écriture. Chaque fois que j'essaie d'écrire, la fonction onWriteCharacterstic arrive avec un code de statut 6, qui est censé être GATT_REQUEST_NOT_SUPPORTED.bluetoothgatt onCharacteristicWrite retour avec le code d'état 6 avec périphérique

Je ne sais pas vraiment ce qui peut le causer. J'ai ajouté toutes les permissions bluetooth nécessaires à mon application, et la documentation indique qu'elle est capable d'écrire.

Mon code ressemble un peu à ceci (simplifié):

@Override 
public void onServicesDiscovered(BluetoothGatt gatt, int status){ 
    if(status == BluetoothGatt.GATT_SUCCESS){ 
     mGatt = gatt; 
     mService= gatt.getService(UUID_SERVICE); 
     mChar = mService.getCharacteristic(UUID_CHAR); 
     byte[] value = {...} 
     mChar.setValue(value); 
     boolean retval = mGatt.writeCharacteristic(mChar); //retval is true 
    } 
} 

@Override 
public void onCharacteristicWrite (BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) 
{ 
... //status here is 6 
} 

J'ai aussi fait un certain contrôle des fonctions getProperties() et GetPermissions() pour la caractéristique. La fonction getPermissions() renvoie 0, ce que je ne pouvais pas faire correspondre à quoi que ce soit dans la documentation android, et le getProperties() renvoie 10, ce qui est également bizarre. Avec les propriétés, cela signifie qu'il prend en charge les notifications, ce qui n'est pas le cas.

Répondre

0

Il semble que ce soit un problème avec le téléphone. Après l'avoir éteint bluetooth pendant quelques heures cela a fonctionné correctement.