我试图找到办法用现代的Android智能手机,即与蓝牙工作4.0(又名蓝牙智能)设备 - 的HTC One V.
我的理解,存在使用GATT轮廓,即使在Android的4.0 API,因为限制的蓝牙4.0的硬件的一些问题。
我看到摩托罗拉发布它自己的API,用于BT LE,但不知道它会为其他供应商合作。 我的目标是获得适当的硬件的智能手机普遍支持。
对于溶液中的任何建议的高度赞赏。
阿列克谢
PS:是的,我看到了Android的HDP API,但它似乎只能用“经典”蓝牙设备(不是低能的,因为BT LE一样)使用。
不幸的是,没有Android原生API的关贸总协定仅仅因为Android系统目前不支持蓝牙低能量的。 这可能会在即将推出的Android版本中改变,但今天反而制造商集成的第三方蓝牙与像高通,博通和CSR厂商低能支持堆叠。 那些带着自己的一套API,显然限制的兼容性,使用该特定供应商的堆栈设定手机。 好消息是,像iOS或Windows 8的其他平台也有本地GATT BLE的API,以及那些能很好地支持。 对于Android,我们将不得不等待,直到谷歌决定整合已经在BLE完成与Android在Linux /工作的BlueZ。
经过一番研究,我只能这样说:
摩托罗拉已经与Broadcom片面开发专有的API。 这似乎是非常有限的,因为它指出有只现有的配置文件的支持。 检查它在这里 。
三星未能提供有关其BLE API的任何信息,我可以证实存在,被称为samsung.bluetoothle。 其实,我反编译,从谷歌Play上的部分应用程序,使用SGSIII的BLE能力和发现一对夫妇的不以Android的原生API BT方式存在,而且他们的名字清楚地说明他们是BLE相关。 我已经使用它们通过Java反射来尝试和我目前正在开发出库的可能性。 但我已经运行测试,到目前为止有最好沙基结果。 还有三星的开发者论坛上线,我会建议做一些压力在这里 ,如果你有兴趣。
谷歌已经在这方面几乎没有任何言论。 有一个线程关于这个问题在Galaxy Nexus的,你应该明星,很多人都在抱怨。 最接近的事,从谷歌的答案可以发现在这里 。
[UPDATE]
三星还修改了几个Android的班,更especifically:
-
BluetoothAdapter
-
BluetoothDevice
[UPDATE]
既然我已经把这个问题搁置了一段时间,由于缺乏来自谷歌和三星都支持我会后我已经学会为止:
BluetoothAdapter
新方法:
public boolean android.bluetooth.BluetoothAdapter.leTestEnd()
public boolean android.bluetooth.BluetoothAdapter.setAvStreaming(boolean)
public boolean android.bluetooth.BluetoothAdapter.setScanLE(boolean)
public void android.bluetooth.BluetoothAdapter.setScoPathChange(int)
public boolean android.bluetooth.BluetoothAdapter.startLeDiscovery()
要使用它们做到以下几点:
BluetoothAdapter ba = new BluetoothAdapter();
Method starteLeDiscoveryMethod = null;
starteLeDiscoveryMethod = ba.class.getMethod("startLeDiscovery");
starteLeDiscoveryMethod.invoke(ba);
注:此方法特别的作品有点像普通startDiscovery()
方法,但是,至少对我来说,它发现了BLE装置2出5倍。 请记住 ,这仅仅是为SGSIII。 我还没有得到解决,以提取新方法BluetoothDevice
,但是当我这样做,我会张贴在这里。
SDK 18现在有这方面的支持。 文档是在这里:
http://developer.android.com/guide/topics/connectivity/bluetooth-le.html
在我的Nexus 4测试是崩溃的蓝牙堆栈。
自从去年HTC已BLE的支持与HTC One X的+,Droid的DNA,当然还有的HTC One。 最初HTC BLE API是根据要求,但它现在已经在自由下载的http://htcdev.com 。
是由谷歌在Android的API等级18很快会来到新标准的Android BLE API(请参阅从IO视频预览) - 但你可以在兼容的方式来支持新的标准API包装第三方的API(HTC,三星等)因为所有的API都是在他们的支持关贸总协定型材(类似IOS)的十分相似。
BluetoothGatt API中提供的Andorid
https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html
作为发现,有4.3的BLE的支持,但它如此破碎,尤其是在Nexus设备。 在我看来,这不是为生产做好准备。