我制作了一个应用程序,可以使用Android蓝牙将手机(LGV20)变成PC键盘。我试图通过让我的应用程序将手机与键盘而不是手机配对来删除PC服务器代码。
我发现的唯一一款不需要PC设置或生根的应用程序是Blek。似乎当你打开应用程序时,它试图将你的手机配对为我想要的键盘。但是,我无法弄清楚他们是如何做到的。我想他们做了这样的事情:
public class MyBluetoothAdapter extends BluetoothAdapter {
private static final String DEVICE_PAIR_TYPE = "Keyboard"
...
}
这不是BluetoothAdapter中的真正变量,但我想像这样的东西被使用了。
答案 0 :(得分:0)
提示应该是在你查看应用程序的描述时:
接收设备必须具有蓝牙4.0 ....
因此,搜索显示GATT的许多规范中包含:
https://www.bluetooth.com/specifications/gatt
看起来每个蓝牙LE芯片制造商都有一个键盘HID超过GATT的例子。
我怀疑每个蓝牙LE芯片SDK都有一些JNI / C级别的东西,可以通过GATT启用键盘HID。
从这篇SO帖子:is there any ble api in Ndk
看起来可以使用较低级别的蓝牙访问,但调用可能因芯片而异。
鉴于Android允许许多不同的芯片供应商,您引用的应用程序的作者可能已经安装了一些基于SDK的代码,但可能无法在所有设备上运行。
我发现但未经测试的一个开源(ish)实现是:
https://github.com/kshoji/BLE-HID-Peripheral-for-Android
似乎有一个21的最小SDK。然而,这个秘密的酱油'仍然是隐藏的'在作者的lib目录中的AAR中。
那还有什么可以做呢?