Advertising with Android BLE
Fermé
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
-
Modifié par leslie45 le 10/06/2016 à 10:55
leslie45 Messages postés 61 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 10 juin 2016 - 10 juin 2016 à 16:54
leslie45 Messages postés 61 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 10 juin 2016 - 10 juin 2016 à 16:54
A voir également:
- Bluetoothgattservercallback
- Mode sécurisé android - Guide
- Télécharger vidéo youtube android - Guide
- Android recovery - Guide
- Sonnerie android - Guide
- Dns_probe_finished_nxdomain android - Forum Android
4 réponses
BunoCS
Messages postés
15356
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 mars 2023
3 882
10 juin 2016 à 11:20
10 juin 2016 à 11:20
Hello,
Je ne maitrise pas la connexion Bluetooth sous Android mais j'ai trouvé ça: https://code.tutsplus.com/tutorials/how-to-advertise-android-as-a-bluetooth-le-peripheral--cms-25426
Est-ce que cela peut t'aider?
Je ne maitrise pas la connexion Bluetooth sous Android mais j'ai trouvé ça: https://code.tutsplus.com/tutorials/how-to-advertise-android-as-a-bluetooth-le-peripheral--cms-25426
Est-ce que cela peut t'aider?
BunoCS
Messages postés
15356
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 mars 2023
3 882
10 juin 2016 à 11:42
10 juin 2016 à 11:42
Je vois une différence dans ton code par rapport au tuto
AdvertiseData data = new AdvertiseData.Builder()
.setIncludeDeviceName( true )
.addServiceUuid( pUuid )
.addServiceData( pUuid, "Data".getBytes( Charset.forName( "UTF-8" ) ) )
.build();
AdvertiseData data = new AdvertiseData.Builder()
.setIncludeDeviceName( true )
.addServiceUuid( pUuid )
.addServiceData( pUuid, "Data".getBytes( Charset.forName( "UTF-8" ) ) )
.build();
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
Modifié par leslie45 le 10/06/2016 à 15:07
Modifié par leslie45 le 10/06/2016 à 15:07
Oui mais cette ligne je l'ai supprimée car elle sert à envoyer des données pas créer un service.
BunoCS
Messages postés
15356
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 mars 2023
3 882
10 juin 2016 à 15:42
10 juin 2016 à 15:42
As-tu implémenté la Callback? Pour savoir si ton service démarre bien?
Et la Callback de ton scan?
Et la Callback de ton scan?
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
Modifié par leslie45 le 10/06/2016 à 16:03
Modifié par leslie45 le 10/06/2016 à 16:03
Tu parle de cette callback là? oui je l'ai bien insérée dans mon code
Je suis allée voir d'autres tuto et il parait qu'il faut ajouter carrément le service dans le Server Gatt en utilisant BluetoothGattServer. J'ai utilisé le code ci-dessous
Mais c'est sur la callback que je me plante car je ne comprends pas ce qu'il faut que je mette à l'intérieure!
AdvertiseCallback advertisingCallback = new AdvertiseCallback() {
@Override
public void onStartSuccess(AdvertiseSettings settingsInEffect) {
super.onStartSuccess(settingsInEffect);
}
@Override
public void onStartFailure(int errorCode) {
Log.e( "BLE", "Advertising onStartFailure: " + errorCode );
super.onStartFailure(errorCode);
}
};
Je suis allée voir d'autres tuto et il parait qu'il faut ajouter carrément le service dans le Server Gatt en utilisant BluetoothGattServer. J'ai utilisé le code ci-dessous
mGattServer = bluetoothManager.openGattServer(this, mGattServerCallback);
BluetoothGattService service =new BluetoothGattService(uuid,BluetoothGattService.SERVICE_TYPE_PRIMARY);
mGattServer.addService(service);
Log.d(TAG,"Le service "+ uuid+" a été rajouté");
Mais c'est sur la callback que je me plante car je ne comprends pas ce qu'il faut que je mette à l'intérieure!
BunoCS
Messages postés
15356
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 mars 2023
3 882
10 juin 2016 à 16:08
10 juin 2016 à 16:08
La Callback te permet d'avoir, de manière générale, un retour lorsqu'une action est terminée. Ici, tu as 2 méthodes qui peuvent être appelées:
-
-
Dans ton cas, si tu veux savoir si tu passes dans le OK ou le KO, je te conseille de mettre un Log dans les 2 méthodes et de regarder la console. Si tu passes dans la méthode OK, il faudra peut-être voir s'il n'y a pas un problème dans le scan.
-
onStartSuccess()qui t'informe du succès de l'opération
-
onStartFailure()qui t'informe qu'il y a eu une erreur
Dans ton cas, si tu veux savoir si tu passes dans le OK ou le KO, je te conseille de mettre un Log dans les 2 méthodes et de regarder la console. Si tu passes dans la méthode OK, il faudra peut-être voir s'il n'y a pas un problème dans le scan.
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
Modifié par leslie45 le 10/06/2016 à 16:13
Modifié par leslie45 le 10/06/2016 à 16:13
ah désolé, je me suis mal exprimée! quand je parlais de la callback, je parlais de la deuxième callback dans le deuxième code "mGattServerCallback".
Dans la callback advertisingCallback, ça se passe bien car j'ai mis un log, "Adv success" et j'arrive à l'obtenir.
Dans la callback advertisingCallback, ça se passe bien car j'ai mis un log, "Adv success" et j'arrive à l'obtenir.
BunoCS
Messages postés
15356
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 mars 2023
3 882
>
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
10 juin 2016 à 16:27
10 juin 2016 à 16:27
https://developer.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html
Tu as
Tu as
onServiceAdded()qui te permet de savoir si le service a bien été ajouté. Sinon, le reste des méthodes sert, a priori, lorsque tu as un device connecté.
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
Modifié par leslie45 le 10/06/2016 à 16:42
Modifié par leslie45 le 10/06/2016 à 16:42
oui!
Tu sais, grâce au deuxième bout de code que j'ai ajouté, j'ai réussi à ajouter mon service mais le service est ajouté 3 fois, je ne sais pas trop pourquoi mais il faut que je mette ce bout de code au bon endroit j'imagine.
Tu sais, grâce au deuxième bout de code que j'ai ajouté, j'ai réussi à ajouter mon service mais le service est ajouté 3 fois, je ne sais pas trop pourquoi mais il faut que je mette ce bout de code au bon endroit j'imagine.
BunoCS
Messages postés
15356
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 mars 2023
3 882
>
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
10 juin 2016 à 16:46
10 juin 2016 à 16:46
Cool! On progresse.. ;)
leslie45
Messages postés
61
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
10 juin 2016
10 juin 2016 à 16:54
10 juin 2016 à 16:54
J'ai récupéré le projet : https://github.com/jeffddrake/ble-android-gatt-server/tree/master/BluetoothLeGattSample/src/main/java/com/example/android/bluetoothlegatt
Mais dit moi stp, si j'ai une class
Et il y a une méthode dans cette class que j'aimerais utiliser toute au début de mon activité principale, comment je fais? c'est une question de base en Android mais j'ai pas trop fais java auparavant.
j'arrive pas à comprendre comment il fait appel à BluetoothLeService dans ce projet
Mais dit moi stp, si j'ai une class
public class BluetoothLeService extends Service
Et il y a une méthode dans cette class que j'aimerais utiliser toute au début de mon activité principale, comment je fais? c'est une question de base en Android mais j'ai pas trop fais java auparavant.
j'arrive pas à comprendre comment il fait appel à BluetoothLeService dans ce projet
10 juin 2016 à 11:37
Oui, effectivement c'est un bon Tuto, je travaille avec ce tuto justement! Mais le problème c'est que la partie ajout de service ne marche pas, ou c'est moi qui a mal compris compris faire car apparemment les autres tutos disent qu'il faut ajouter le service dans le Server Gatt du mobile