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

标签 android bluetooth bluetooth-lowenergy

我正在努力使用摩托罗拉随 RAZR 提供的 BT 4.0 API。在 one of their documents它声明在连接和使用他们的框架之前使用 Android API 进行配对。根据他们的说明,我一直在与操作系统蓝牙设置应用程序配对,但它从未提示我输入 key 。它会配对但似乎不会结合,这对我来说至关重要。

我的问题是,当他们说“使用 Android API”时,这是指简单地使用 OS 蓝牙实用程序预先配对(就像我一直在做的那样),还是有一些方法可以用我的代码来完成应用。他们引用了“createBond()”函数,据我所知,该函数不是一个可访问的函数(至少在没有一些 squirrely 库或反射的情况下)。

非常感谢任何建议,特别是任何成功使用 API 的人,如果他们能说明他们的过程。我现在只是在寻找一些清晰度:)

最佳答案

劳埃德,

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

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

如果您使用的设备是摩托罗拉兼容设备,则该设备将配对但未连接。

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

相同的方法检测此配对设备
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;
}

并在循环绑定(bind)设备时仔细检查您配对的蓝牙设备是否为 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 应用程序。

关于Android 低功耗蓝牙摩托罗拉 API 配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10907602/

相关文章:

android - 以编程方式从android中的图库重命名/删除音频文件

c# - 如何替换 Xamarin.Form 项目中已弃用的 Android "Context.Resources.UpdateConfiguration"?

java - HC-06蓝牙模块

java - 无法从 BLE 设备读取,写入工作正常 (Android)

android - 在没有 Fragment 的情况下使用 LoaderCallbacks

Android CalledFromWrongThreadException

android - 我如何在android中通过蓝牙接收串行数据?

ios - Swift Core蓝牙 : Should CentralManager run in a separate thread?

Android 蓝牙 accept()/connect() 与已经配对的设备

android - 订阅 BLE Gatt 通知 Android