如何获得蓝牙连接链接率android

时间:2016-09-07 08:13:53

标签: android api android-bluetooth

在Android应用程序中,我们可以使用wifiInfo.getLinkSpeed()方法获得WiFi连接链接速率。

但有没有办法让Bluetooth connection Link Rate?任何API或方法可用于此?

2 个答案:

答案 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的最大速度数据。对于大多数情况,蓝牙链接不传输用户数据(除了您正在收听音乐或呼叫),但只保留链接,因此蓝牙评估链接速度(至少对于最终用户)没有意义。