Ale*_*VMP 28 android bluetooth android-4.0-ice-cream-sandwich bluetooth-lowenergy
我正试图找到使用现代Android智能手机的蓝牙4.0(AKA蓝牙智能)设备的方法,即 - HTC One V.
据我所知,由于API限制,即使在具有蓝牙4.0硬件的Android 4.0中也存在使用GATT配置文件的一些问题.
我看到摩托罗拉发布了自己的BT LE API,但不确定它是否适用于其他厂商.我的目标是通过适当的硬件为所有智能手机提供普遍支持.
任何解决方案的建议都非常感谢.
阿列克谢
PS:是的,我看过用于HDP的Android API,但它似乎只用于'经典'蓝牙设备(不像BT LE那样低功耗).
int*_*oad 26
遗憾的是,由于Android目前根本不支持蓝牙低功耗,因此没有Android原生GATT API.这可能会在即将发布的Android版本中发生变化,但今天制造商却将第三方蓝牙堆栈与高通,Broadcom或CSR等厂商的低能耗支持相集成.那些带有自己的API集合,显然限制了与使用该特定供应商堆栈的电话集的兼容性.好消息是,在iOS或Windows 8等其他平台上都有原生的GATT BLE API,并且这些API得到了很好的支持.对于Android,我们将不得不等到Google决定将已在BLE上完成的Linux/BlueZ工作与Android集成.
Moi*_*nez 13
经过一些研究,我只能这样说:
摩托罗拉支持Broadcom开发专有API.它似乎非常有限,因为它表示只支持现有的配置文件.检查它在这里.
三星未能提供有关其BLE API的任何信息,我可以验证该信息存在并称为samsung.bluetoothle.我实际上反编译了Google Play中使用SGSIII的BLE功能的一些应用程序,并发现了Android的原生BT API中不存在的一些方法,并且他们的名字清楚地表明它们与BLE相关.我试过通过java反射使用它们,目前正在研究开发库的可能性.但到目前为止我已经进行的测试充其量只能获得成功.在三星的开发者论坛上也有一个帖子,如果你有兴趣,我建议你在这里施加一些压力.
谷歌在这方面几乎没有发表任何言论.Galaxy Nexus中存在关于这个问题的一个主题,你应该为很多人抱怨.可以在此处找到最接近Google答案的内容.
[UPDATE]
三星还修改了几个Android的类,更具体地说:
BluetoothAdapterBluetoothDevice[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()
Run Code Online (Sandbox Code Playgroud)
要使用它们,请执行以下操作:
BluetoothAdapter ba = new BluetoothAdapter();
Method starteLeDiscoveryMethod = null;
starteLeDiscoveryMethod = ba.class.getMethod("startLeDiscovery");
starteLeDiscoveryMethod.invoke(ba);
Run Code Online (Sandbox Code Playgroud)
注意:这种方法特别有点像常规startDiscovery()方法,但至少对我来说,它在5次中发现了BLE设备2.而且记住,这仅仅是为SGSIII.我还没有开始提取新方法,BluetoothDevice但是当我这样做时,我会在这里发布它们.
| 归档时间: |
|
| 查看次数: |
19187 次 |
| 最近记录: |