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

Llo*_*oyd 2 android bluetooth bluetooth-lowenergy

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

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

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

jos*_*527 5

劳埃德,

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

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

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

现在,在代码中,您可以通过相同的方法检测此配对设备

BluetoothAdapter.getDefaultAdapter().getBondedDevices()
Run Code Online (Sandbox Code Playgroud)

要仔细检查您的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;
}
Run Code Online (Sandbox Code Playgroud)

并且仔细检查您配对的蓝牙设备是否为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;
}
Run Code Online (Sandbox Code Playgroud)

现在,要建立从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应用程序.