Bluetooth Low Energy Service de Découverte avec Android 4.3 sur le Nexus 4
Je suis en train d'utiliser un BLE module (bluegiga BLE112) avec mon nexus 4 (android 4.3). Je peux me connecter, obtenir le nom de l'appareil, branchez le GATT, mais la découverte de services échoue.
Voici comment faire les premiers gatt de connexion (qui semble fonctionner correctement:
dev.connectGatt(getBaseContext(), true, btGattCB);
Voici le GATT de rappel:
private BluetoothGattCallback btGattCB = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
super.onConnectionStateChange(gatt, status, newState);
if(newState == BluetoothProfile.STATE_CONNECTED){
Log.i(TAG, "Gatt Connected");
gatt.discoverServices();
}
else if(newState == BluetoothProfile.STATE_DISCONNECTED){
Log.i(TAG, "Gatt Disconnected");
}
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status){
Log.i(TAG,"Status onServiceDiscovered: "+status); //status code i'm getting here is 129
List<BluetoothGattService> btServices = gatt.getServices();//try anyway
}
};
Et Voici mon Log:
09-28 12:58:37.611 4118-4130/com.jnewt.btFive I/PDU? Scan Callback
09-28 12:58:37.611 4118-4130/com.jnewt.btFive I/PDU? Device is: 00:07:80:67:2F:63
09-28 12:58:37.611 4118-4130/com.jnewt.btFive I/PDU? Device Name: BGT GPIO Test
09-28 12:58:43.607 4118-4118/com.jnewt.btFive I/PDU? Scan Timeout
09-28 12:59:13.539 4118-4129/com.jnewt.btFive I/PDU? Gatt Connected
09-28 12:59:43.561 4118-4190/com.jnewt.btFive I/PDU? Service Discovery Failed
09-28 12:59:43.581 4118-4130/com.jnewt.btFive I/PDU? Gatt Disconnected
09-28 13:00:00.920 4118-4129/com.jnewt.btFive I/PDU? Gatt Connected
09-28 13:00:30.902 4118-4130/com.jnewt.btFive I/PDU? Service Discovery Failed
09-28 13:00:30.922 4118-4190/com.jnewt.btFive I/PDU? Gatt Disconnected
09-28 13:01:20.265 4118-4129/com.jnewt.btFive I/PDU? Gatt Connected
09-28 13:01:50.277 4118-4190/com.jnewt.btFive I/PDU? Service Discovery Failed
09-28 13:01:50.297 4118-4130/com.jnewt.btFive I/PDU? Gatt Disconnected
09-28 13:01:56.113 4118-4129/com.jnewt.btFive I/PDU? Gatt Connected
09-28 13:02:26.115 4118-4190/com.jnewt.btFive I/PDU? Service Discovery Failed
09-28 13:02:26.125 4118-4130/com.jnewt.btFive I/PDU? Gatt Disconnected
De la https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html page, je ne vois pas de 129 mentionné comme un possible état (aucun des constantes match 129).
Je suis tout à fait d'idées à ce point. J'ai isolé le problème sur le téléphone android en testant avec un exemple similaire pour l'iphone. J'ai aussi essayé plusieurs applications disponibles sur le play store, et qu'ils ont un problème similaire (pouvez vous connecter, obtenir le nom, etc, mais pas de services).
bluegiga.com/en-US/products/bluetooth-4.0-modules/...
android.googlesource.com/platform/external/bluetooth/bluedroid/... le Statut 129 (0x81) est GATT_ERROR, mais je suis sûr que cette information ne va pas vous aider.
En fait, une indication de ce que cela signifie, c'est bien plus que ce que j'avais hier. Je ne suis pas sûr de ce que la solution n'est pas encore, mais au moins je sais d'où ça vient.
il est très feuilletée. Essayez Bluetooth sur la alors premier. Essayez d'après une nouvelle de démarrage. Une fois que vous l'obtenez dans un état juste dose pas de récupérer parfois sans ces.
OriginalL'auteur jnewt | 2013-09-28
Vous devez vous connecter pour publier un commentaire.
Réellement obtenu le même code d'erreur aujourd'hui pour tester mon Application sur la Nexus 7. Mon problème, c'est que j'ai appelé 2 X du Gatt.se connecter en peu de temps. Peut-être que cela vous aide. Soyez conscient que vous ne vous connectez pas deux fois dans un court laps de temps à votre dispositif de capteur.
OriginalL'auteur Michael Heiser
de BleConstants.java
public static final int GATT_INTERNAL_ERROR = 129;
OriginalL'auteur user1603602
J'ai fait plusieurs tests sur ma Nexus 7 avec TI capteur tag.
0x81 GATT_INTERNAL_ERROR
0x81 GATT_INTERNAL_ERROR
onServicesDiscovered
n'a jamais été appelée.onServicesDiscovered
encore échoué.J'ai aussi tester le même programme sur le Galaxy S4 (Android 4.3) et il fonctionne bien à tous les temps.
Donc, je crois que le BLE pile sur la Nexus 7 n'est pas bon.
Si vous pouvez vivre avec pas de WiFi, il peut être OK, mais si vous pouvez trouver quelques autres Android 4.3 appareil, vous devez essayer d'autres appareils.
Même sur Nexus5. Espérons que ce problème sera résolu.
OriginalL'auteur Chih-Wei Chang
Bien,
J'ai eu le même Problème.
Inspecter les valeurs binaires des constantes dans BluetoothGATT je suggère que, tout simplement, 129 Signifie l'Échec. Peut-être, tout en définissant les Constantes de quelqu'un de mal tapé un 0 de trop et il a fini par être 257 au lieu de 129. (Si c'est un code de Statut de toujours chercher la représentation binaire, il révèle que plus de valeur décimale)
Je vais certainement pas regarder dans le code source Android juste pour savoir si il est inséré en binaire ou en décimales.
Encore, vous avez besoin d'une solution à cela ?
Pour moi le redémarrage du téléphone -deux fois - aidé. Pendant le deuxième reboot j'ai d'abord désactivé Bluetooth manuellement.
Jusqu'à ce que l'erreur s'est produite, j'ai eu par programme d'arrêt et de réactivé Bluetooth pour chaque test, exécution de mon application. Il a travaillé sans faille pendant près de 2 Mois. Puis j'ai enlevé la "perte de temps" BT-redémarrer-code , et cette erreur a montré et m'a coûté une demi-journée pour vérifier.
Dedection n'a jamais été un problème pour moi, périphériques affichent instantanément.
De développement Téléphone : Nexus 4 /Android 4.3 (mise à jour en permanence)
BLE de Périphérique : Texas instruments CC2541
OriginalL'auteur chippy
J'obtiens cette erreur si mon BLE appareil est déjà jumelé avec mon téléphone. L'erreur est résolue une fois que je l'onu-paire de l'appareil et de découvrir de nouveau le service.
OriginalL'auteur Sudhee
j'ai eu la même erreur à l'aide de la TI-CC2541 Puce.
La solution a été d'utiliser la Puce de 128 ko au lieu de 256 ko.
Par exemple, le "SimpleBLEPeripheral" est faite pour la Puce de 128 ko.
OriginalL'auteur Florian