Android BLE analyse Passive
Je veux numériser BLE annonceurs passivement dans mon Application Android.
Mais je n'ai pas trouvé comment faire.
-
Fonction Bluetooth 4.0 Core spec, Il existe passive mode de balayage.
Vol 6 : Système de Base de Package [Basse Énergie Contrôleur de volume],
Partie D:4.1 BALAYAGE PASSIF
https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=282159
"Un appareil peut utiliser le balayage passif à trouver de la publicité des dispositifs dans le domaine." -
Et aussi, android est le paramètre qui détermine le type de scan. (Actif/Passif)
http://androidxref.com/4.3_r2.1/xref/external/bluetooth/bluedroid/stack/btm/btm_ble_gap.c#555
"scan_type: analyse active ou passive scan" -
Pendant ce temps, iOS pouvez numériser ble annonceurs de manière passive. (malheureusement, le mode arrière-plan uniquement)
http://lists.apple.com/archives/bluetooth-dev/2012/May/msg00041.html
"Lorsque l'application est en arrière-plan, iOS effectue un balayage passif."
Mais je l'ai pas trouvé si il est possible d'utiliser passive mode de balayage ou pas.
Question : Est-il possible d'utiliser "ANALYSE PASSIVE" sur Android? Si c'est possible, Comment utiliser cette fonctionnalité?
OriginalL'auteur Stanley Kou | 2014-07-28
Vous devez vous connecter pour publier un commentaire.
La différence entre
active
etpassive
scan estactive
scans demande unSCAN_RESPONSE
paket de l'annonceur. Ceci est fait par l'envoi d'unSCAN_REQUEST
paket après une publicité a été détecté. L'information (charge utile) des deux sera dans lescanRecord
paramètre de l'appareil de rappel.De la de base spec:
Donc, pour n'importe quel cas d'utilisation, il ne sera pas nécessaire de différences entre ces deux types de numérisation.
Mais si vous voulez écouter les annonces dans l'arrière-plan, alors vous devez le faire vous-même par la création d'un
Service
- il n'est pas construit dans la fonctionnalité (Android 4.4).De l'arrière-plan de numérisation de prendre cet exemple. Mais l'analyse se termine au point de votre application est tué par le système(ou arrêté par l'utilisateur).
De départ d'un PendingIntent par AlarmManager (n'importe où dans votre application, qui doit être exécuté au moins une fois pour démarrer le service...)
BleScanService
Les constantes sont simplement des Chaînes de distribuer de l'intention à l'action et extra noms. Il y a un autre préférences magasin qui stocke les combien de temps la phase de numérisation doit être...Vous pouvez facilement le remplacer ba à vos besoins.
Ensuite, vous avez à registera diffusion récepteur avec un filtre d'intention qui correspond à ce qui précède le nom de l'action (
BleServiceConstants.ACTION_DEVICE_DISCOVERED
)Sous la restriction que le système d'exploitation Android est capable de tuer votre appand à cet effet le service d'analyse/de l'alarme il est possible...mettrai à jour mon post d'ici peu avec un exemple
Je vous remercie pour votre réponse. Est qui signifie qu'il y a de toute façon délicate d'analyse passive?
Merci. Votre modifier les sons de meilleure qualité que la mienne.
tout cas d'utilisation, il ne sera pas nécessaire de différences entre ces deux types de numérisation" - Pas tout à fait vrai, pour les appareils sans interruption de l'envoi de analysable de la publicité (par exemple, un appareil de commercialisation périodiquement l'envoi de coupons) vous préférez ne pas avoir la charge de l'actif de la numérisation. Malheureusement, Android n'est pas ce que iOS semble avoir.
OriginalL'auteur matcauthon