gpt4 book ai didi

android - Android 真的支持蓝牙 OOB 配对吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:36 28 4
gpt4 key购买 nike

我是 Android 世界的新手。如果我的问题太天真,请原谅我。

我一直在开发一个示例应用程序来实现 Linux Box(运行 Bluez-5.42 的 FC-21)和 Android 平板电脑之间的蓝牙配对。我正在使用 NFC 将蓝牙名称、地址和 OOB 数据从 PC 传输到 Android。我能够通过 NFC(准确地说是光束)将上述数据从 PC 发送到 Android,并且能够在 Android 端解析和解码所有数据。有了 Android 上可用的 Linux box 的蓝牙地址,我可以调用 CreateBond() 将 Android 平板电脑与 Linux Box 配对。我已经测试了这部分,它按预期工作。

现在,这种方法的问题在于,在蓝牙配对过程中使用了数字比较或密码输入关联模型,我认为这是用户使用 NFC 进行配对时的体验偏差。由于我已经有了 PC 的 OOB 数据,我想使用 OOB 关联进行配对,这样用户体验就不会受到影响。

为此,当我将 CreateBond() 替换为 CreateBondOutOfBand() [使用反射] 时,没有配对请求从 Android 发送到 Linux PC。

       try {
showLog("Pairing started");
Method m = bDev.getClass().getMethod("createBondOutOfBand", byte[].class, byte[].class);
showLog("Found method");
Boolean flag = (Boolean) m.invoke(bDev, Hash, Rand,(Object[]) null);
//Method m = bDev.getClass().getMethod("createBond", (Class[]) null);
//Boolean flag = (Boolean) m.invoke(bDev, (Object[]) null);
if(flag)
showLog("Pairing successfully finished.");
else
showLog("Pairing failed");
} catch (Exception e) {
showLog("Pairing failed.");
}

我在网上搜索过,但没有找到任何具体证据表明 OOB 配对可以在 Android 中实现。

此外,为了检查原生 Android 的行为,我使用 Linux 盒子的蓝牙名称、地址和 OOB 数据创建了一个 NFC 标签。当我拿着标签对着安卓平板电脑时,蓝牙配对开始了,但它仍然没有使用 OOB 关联模型。

我的问题如下,

  • Android 真的支持 OOB 关联模型吗?
  • 如果支持 OOB 关联模型,CreateBondOutOfBand() 是要使用的 API 还是我需要使用的任何其他 API?

如有任何意见,我们将不胜感激。

谢谢,

最佳答案

根据 this ,

Android 9 introduces new restrictions on the use of non-SDK interfaces, whether directly, via reflection, or via JNI. These restrictions are applied whenever an app references a non-SDK interface or attempts to obtain its handle using reflection or JNI.

由于 createBondOutOfBand() 和 removeBond() 对公众隐藏 documentation ,这些方法从Android 9开始被限制。使用反射调用这些方法会导致异常。

关于android - Android 真的支持蓝牙 OOB 配对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41603450/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com