在Android应用程序中,我们可以使用wifiInfo.getLinkSpeed()
方法获得WiFi连接链接速率。
但有没有办法让Bluetooth connection Link Rate?
任何API或方法可用于此?
答案 0 :(得分:0)
我从事过蓝牙应用程序,我有与您相同的需求,但我没有找到解决方案来获得以mbps为单位的蓝牙连接速度。
因此,此解决方案可能无法根据您的要求为您提供蓝牙链接速率的确切值,但它实际上使用接收信号强度指示器(RSSI)为您提供蓝牙链路质量(良好,中等,差)的参考
要阅读蓝牙RSSI的值,您应该为您的班级添加BroadcastReceiver
:
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);
}
}
};
您的接收者必须使用以下注册:
registerReceiver(receiver, new IntentFilter(BluetoothDevice.ACTION_FOUND));
现在,您需要知道数据传输速度随着RSSI值的增加而增加,因此,您所要做的就是为每个链路质量定义一个范围。
PS:请参阅此链接以了解有关蓝牙Bluetooth RSSI values are always in dBm in all Android devices?
的RSSI值的更多信息希望这会有所帮助:)
答案 1 :(得分:0)
简短的回答是没有这样的界面。 答案很长,蓝牙的速度因不同设备的硬件和软件差异而有所不同,例如: BR / EDR / BLE和蓝牙仅定义了BR / EDR / BLE的最大速度数据。对于大多数情况,蓝牙链接不传输用户数据(除了您正在收听音乐或呼叫),但只保留链接,因此蓝牙评估链接速度(至少对于最终用户)没有意义。