如何在android中获得蓝牙低能耗设备的连接状态

时间:2012-09-27 08:19:37

标签: android bluetooth bluetooth-lowenergy

Follwoing是android用来获取连接摘要(显示连接状态标签)的代码

      private int getConnectionSummary() {
      ...........................
      ...........................
      for (LocalBluetoothProfile profile : cachedDevice.getProfiles()) {
            int connectionStatus = cachedDevice.getProfileConnectionState(profile);

            switch (connectionStatus) {
                case BluetoothProfile.STATE_CONNECTING:
                case BluetoothProfile.STATE_DISCONNECTING:
                    return Utils.getConnectionStateSummary(connectionStatus);

                case BluetoothProfile.STATE_CONNECTED:
                    profileConnected = true;
                    break;

                case BluetoothProfile.STATE_DISCONNECTED:
                    if (profile.isProfileReady()) {
                        if (profile instanceof A2dpProfile) {
                            a2dpNotConnected = true;
                        } else if (profile instanceof HeadsetProfile) {
                            headsetNotConnected = true;
                        }
                    }
                    break;
            }
        }

从上面的代码中可以看出,他们使用以下代码行获取Classic设备的连接状态:

int connectionStatus = cachedDevice.getProfileConnectionState(profile);

Android系统调用getConnectionSummary()方法,无论Classic或Bluetooth低功耗设备是否正在尝试连接;但与传统设备不同,由于我们没有一种方法可以为蓝牙低能耗设备获取connectionStatus,因此我们无法正确更新低能耗设备的连接状态。

可以找到此课程的完整来源here

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您使用的蓝牙低能量开发套件是什么?

截至目前,Android还没有适用于蓝牙低功耗设备的原生API。 您可能必须使用第三方API,例如BLE From Broadcomm或TI或CSR。

http://code.google.com/p/broadcom-ble/

摩托罗拉蓝牙低能耗API http://developer.motorola.com/docs/bluetooth-low-energy-api/

您可以查看此页面,了解有关选择开发套件的更多信息。 BTLE (Bluetooth Low energy) development kit - must have proximity profile