是否可以在Android应用中为蓝牙设置link层加密和配对机制

Is it possible to set link layer encryption and pairing mechanisms for Bluetooth in Android app

我正在从事一个关于拦截低功耗蓝牙 (BLE) 流量的项目。蓝牙提供不同类型的配对机制,如 "Just Works" 和 "Passkey Entry"。此外,蓝牙连接可以在 link 层上加密。

为了测试这些不同的情况,我想到了编写一个 Android 应用程序来实现不同的安全机制。所以我的问题是:

是否可以在 Android 应用程序中指定配对机制并打开和关闭 link 层加密?

我查看了 Android Documentation,但在那里找不到答案。

无法从 android 应用指定配对机制。通过让远程蓝牙设备仅支持特定的配对机制,可以隐式地强制执行配对机制。

无法从 android 应用打开和关闭 link 层加密。可以通过隐藏方法 BluetoothDevice.isEncrypted (https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r21/core/java/android/bluetooth/BluetoothDevice.java#1020) 检查加密状态。可以从远程蓝牙设备打开和关闭 link 层加密。