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 :)