2016-09-07 2 views

Répondre

0

J'ai travaillé sur des applications Bluetooth et j'avais le même besoin que le vôtre mais je n'ai pas trouvé de solution pour obtenir la vitesse de connexion Bluetooth en Mbps. Donc, cette solution peut ne pas vous donner une valeur exacte pour le débit de liaison Bluetooth comme vous le demandiez, mais elle vous donne une référence à la qualité de la liaison Bluetooth (bonne, moyenne, mauvaise) en utilisant l'indicateur de force de signal reçu (RSSI)).

Pour lire la valeur de votre RSSI Bluetooth, vous devez ajouter un BroadcastReceiver à votre classe:

private final BroadcastReceiver receiver = new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(BluetoothDevice.ACTION_FOUND.equals(intent.getAction())) { 
     //Get the RSSI value here 
      int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE); 
     } 

    } 
}; 

Votre récepteur doit être enregistré à l'aide:

registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

Maintenant, vous devez savoir que la vitesse de transfert de données augmente à mesure que la valeur RSSI augmente, donc, tout ce que vous avez à faire est de définir une plage pour chaque qualité de liaison.

PS: Reportez-vous à ce lien pour en savoir plus sur les valeurs RSSI pour Bluetooth Bluetooth RSSI values are always in dBm in all Android devices?

Hope this helps :)

0

La réponse courte est pas une telle interface. La réponse longue est, la vitesse de Bluetooth varie en raison de la différence matérielle et logicielle pour un périphérique différent, par ex. BR/EDR/BLE et Bluetooth ont uniquement défini les données de vitesse maximale pour BR/EDR/BLE. dans la plupart des cas, le lien Bluetooth ne transporte pas les données utilisateur (sauf si vous écoutez de la musique ou appelez), mais gardez simplement le lien, cela n'a donc aucun sens pour Bluetooth d'évaluer la vitesse du lien (au moins pour l'utilisateur final).