我正在使用摩托罗拉为RAZR提供的BT4.0API。在one of their documents中,它规定在连接和使用他们的框架之前使用Android API进行配对。根据他们的指示,我一直在与操作系统蓝牙设置应用程序配对,但它从未提示我输入密钥。它可以配对,但似乎不能结合,这对我来说很关键。
我的问题是,当他们说“使用Android API”时,这是指简单地使用操作系统蓝牙实用程序进行配对(就像我一直在做的那样),还是有某种方法可以在我的应用程序中使用代码来完成配对。它们引用了"createBond()“函数,据我所知,该函数不是一个可访问的函数(至少没有一些奇怪的库或反射)。
任何建议都是非常感谢的,特别是任何成功使用过API的人,如果他们能给出他们的过程的话。我只是在这一点上寻找一些清晰的东西:)
发布于 2012-07-07 01:42:09
劳埃德
您是正确的,请按照您发布的链接中的说明进行操作。
在编码之外,当他们说使用标准的android api来进行非le操作时,他们的意思是继续对ble设备进行配对,就像在android设置->无线和网络->蓝牙->扫描设备中对任何蓝牙经典设备进行配对一样。
如果您使用的设备是与摩托罗拉le兼容的设备,则ble设备将是配对的,但未连接。
现在,在代码中,您可以通过相同的方法检测这个成对的设备
BluetoothAdapter.getDefaultAdapter().getBondedDevices()要再次检查您的Android手机是否与LE兼容,请运行以下代码:
public static boolean checkBLESupport() {
boolean deviceSupportsLE;
try {
@SuppressWarnings({ "unused", "rawtypes" })
Class object = Class.forName("android.server.BluetoothGattService");
deviceSupportsLE = true;
} catch (Exception e) {
deviceSupportsLE = false;
}
return deviceSupportsLE;
}当您在绑定的设备中循环时,要仔细检查您配对的蓝牙设备是否为LE。使用此代码检查设备。
if (device.getBluetoothClass() == null) {
Log.i(TAG, "This device is BLE compatible");
b = true;
} else {
Log.i(TAG, "This device is not BLE");
b = false;
}现在,要建立从LE兼容电话到LE兼容蓝牙设备的连接,请按照您发布的链接下的Gatt服务说明进行操作。http://developer.motorola.com/docs/bluetooth-low-energy-api/
请注意,在此示例中,它连接到一个蓝牙低能量心率监视器。
如果您不想使用LE心率配置文件连接心率监视器,这里有一个指向另一个Motorola文档的链接,该文档详细介绍了如何创建您自己的LE配置文件,以便与GATT框架一起使用。http://developer.motorola.com/docs/bluetooth-low-energy-gatt-framework-api/
如果这些文档中的任何一点的说明都不够清楚,摩托罗拉将提供使用这些文档中的框架的示例安卓应用程序。
发布于 2012-08-15 16:32:27
我猜摩托罗拉堆栈支持BLE。但我的感觉是,它不能与需要粘合的设备配对,尽管它确实可以工作在一些传感器上。我已经尝试了一个需要粘合的接近传感器。它永远不会配对,尽管设备是用Razr发现的,而Razr甚至不能用S3。
有一个有用的视频here。
发布于 2016-12-29 04:02:40
太晚了,但我可以确认-
如果您的BLE外设需要绑定,在通过Android GATT接口进行编程连接之前,Moto X和其他一些较旧的摩托罗拉设备必须通过蓝牙设置进行配对。
如果您通过createBond方法连接,或读取加密特征,您的连接通常会在60秒内断开,尽管可能会建立良好的连接。
https://stackoverflow.com/questions/10907602
复制相似问题