Android蓝牙低功耗摩托罗拉API配对

时间:2012-06-06 02:55:25

标签: android bluetooth bluetooth-lowenergy

我正在使用摩托罗拉为RAZR提供的BT 4.0 API。在one of their documents中,它声明在连接和使用框架之前使用Android API进行配对。按照他们的说明,我一直在与OS蓝牙设置应用程序配对,但它从不提示我输入密钥。它会配对,但似乎没有结合,这对我来说至关重要。

我的问题是,当他们说“使用Android API”时,这指的是简单地使用操作系统蓝牙实用程序预先配对(就像我一直在做的那样),或者是否有某种方法可以使用我的代码应用。他们引用了“createBond()”函数,据我所知,这个函数不是一个可访问的函数(至少没有一些简单的库或反射)。

非常感谢任何建议,尤其是那些成功使用API​​的人,如果他们能够说明他们的流程。我现在只想找到一些清晰度:)

3 个答案:

答案 0 :(得分:5)

劳埃德,

您是对的,请按照您发布的链接中的说明进行操作。

在编码之外,当他们说使用标准的android api进行“非le”操作时,他们意味着继续使用与设置中任何蓝牙经典设备相同的方式配对设备 - >无线&网络 - >蓝牙 - >扫描设备。

如果您使用的设备是与motorola兼容的设备,则该设备将配对但未连接。

现在,在代码中,您可以通过

的相同方法检测此配对设备
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心率配置文件连接到心率监测器,这里有一个指向另一个摩托罗拉文档的链接,该文档详细说明了创建您自己的LE配置文件以与GATT框架一起使用。 http://developer.motorola.com/docs/bluetooth-low-energy-gatt-framework-api/

如果这些文档中的任何一个指令都不够清楚,motorola会使用这些文档中的框架提供示例Android应用程序。

答案 1 :(得分:1)

我猜摩托罗拉堆栈有BLE支持。但我觉得它不会与需要粘接的设备配对虽然它确实可以工作一些传感器。我尝试过需要粘接的接近传感器。虽然使用Razr发现了设备,但它永远不会配对,即使不使用S3。

有一段有用的视频here

答案 2 :(得分:0)

游戏后期,但可以确认 -

如果您的BLE外围设备需要绑定,Moto X和其他一些旧款摩托罗拉设备必须通过蓝牙设置进行配对,然后才能通过Android GATT界面进行编程连接。

如果您通过createBond方法绑定或读取加密特征,您的连接通常会在60秒内丢弃,尽管可能会建立显示良好绑定的DDMS日志。

相关问题