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
非常感谢任何帮助。
答案 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