Question

Deux questions sur le développement Bluetooth sous Android:

  1. Existe-t-il un moyen d'activer Bluetooth en permanence (ma phase de découverte de périphérique dans mon application risque d'être longue) sous Android? Autant que je sache, la valeur par défaut est un compte à rebours de 120 secondes.

  2. Existe-t-il des implémentations d'API Bluetooth open source?

Était-ce utile?

La solution

L'implémentation Bluetooth est maintenant disponible dans l'API Android 2.0. Voir this et this .

Autres conseils

L'activation permanente de Bluetooth peut ne pas être une bonne décision si votre seul souci est le long délai de découverte ("autonomie de la batterie").

En ce qui concerne les API Bluetooth tierces, la seule chose dont j'ai entendu parler est iAnywhere. Blue SDK (de Sybase, non gratuit, uniquement la version d’évaluation disponible), qui couvre certaines des fonctionnalités qui seront prises en charge ultérieurement par système / bluetooth et bluez packages.

Selon la feuille de route Bluetooth d'Android, la plupart des choses attendues depuis longtemps, comme Java API, Bluetooth 2.1 + EDR sera mis en œuvre à un moment donné.

Bonne chance dans votre projet.

Le 2.3.6, je peux garder l’appareil toujours visible en mettant le délai 0:

Intent di = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
di.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);

La pile Bluez sous Linux est une implémentation à code source ouvert. Il est également disponible sous Windows, mais l’API est beaucoup plus complète sous Linux.

Quand vous dites: "Activer Bluetooth pour toujours", voulez-vous dire, essayant toujours de découvrir d'autres appareils?

La plupart des puces bluetooth ont un mode de veille profonde dans lequel la puce est généralement hors service et ne permettent que de vérifier l’activité des liaisons établies. Il ne se réveillera à plein régime que si vous souhaitez faire quelque chose (découverte, établir une connexion) ou qu’un lien existant est actif.

Oui, il utilise plus d'énergie que si le Bluetooth était totalement désactivé, mais ce n'est pas un vampire total.

 private void ensureDiscoverable() {
    if(D) Log.d(TAG, "ensure discoverable");
    if (mBluetoothAdapter.getScanMode() !=
        BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
        Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
        startActivity(discoverableIntent);
    }

http://developer.android.com/reference/android/ bluetooth / BluetoothAdapter.html # ACTION_REQUEST_DISCOVERABLE

BlueCove est une implémentation Bluetooth à code source ouvert pour Java.

Cela fonctionne sur de nombreuses machines différentes et, le cas échéant, une version compatible avec Android se cache quelque part.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top