66收获 查看蓝牙状态 | hidd –show //显示联接状态: |
现状 | 而对于更多的android设备, 即便是在安了第三方软件的情况下, 最多也只能实现英文字符的输入。 并且会有ctrl、esc等少量字符不支持的问题。 |
| 希望android设备早日添加usb-host功能,并带上键盘驱动。 |
玩:
android系统连接蓝牙键盘
发表于 三月 25, 2011 由 船长
1
更新:更新使用HID蓝牙无线键盘的情况。
买了一个惠普折叠便携式蓝牙键盘(HP Bluetooth Foldable Keyboard FA287A) ,想用它和使用android系统a650s手机连接起来打字。 成功了一半。
使用spp协议和使用hid协议的不同蓝牙键盘
原来蓝牙键盘是有分不同的蓝牙通信协议的。有的是SPP协议(Serial Port Profile),有的HID协议(Human Interface Device Profile)。
使用SPP协议的蓝牙键盘连接android系统手机
我买的惠普FA287A蓝牙键盘用的是SPP协议。(我发现微星MSI BK100 Universal Bluetooth Keyboard跟它非常相似。甚至windows mobile下驱动可以通用。)
android系统(2.2)目前好像不能原生地支持spp协议键盘。必须得安装第三方驱动。我试过BlueInput,Keypro,BluePiano Bluetooth Keyboard, GetBlue Bluetooth Ready这几个驱动。其中BlueInput好像只支持使用HID协议的蓝牙键盘,而最后面两个虽然能连接成功,但不能输出正确的字符。 只有用KeyPro可以正常地输出。
使用KeyPro也不是很完美。首先, KeyPro是收费软件, 使用免费版会在若干字符间插入一段版权提示文字。其次, Keypro安装后会生成一个独立的输入法,要使用这个输入法才能使用蓝牙键盘输入, 所以没办法兼容百度等中文输入法, 也就是没办法用蓝牙键盘输入中文!而且,即使是英文输入, 好像有些按键,比如ctrl按键, 也是没办法识别。
查了半天资料,也没找到更好的解决办法(因为使用的是google,一次又一次地被连接重置,我沉默)。倒是听说有人用BlueInput或使用其它HID驱动在android手机上连接HID蓝牙键盘后, 可以使用谷歌等中文输入法输入中文的(优酷上有G2的视频)。这样看来现在买HID协议的蓝牙键盘(比如苹果G6蓝牙键盘)或许更明智一些。
使用HID协议的蓝牙键盘连接android系统手机
有了上次的教训,今天买了一个Freedom Universal Keyboard. 这是一个使用spp和hid双协议的无线蓝牙键盘。键盘上有一个硬件开关, 可以在spp协议和hid协议间切换。 今天我用一下午试验了android手机和HID协议蓝牙键盘的连接情况。
听说android 2.2已经原生支持HID协议无线蓝牙设备了,我在a650s上试,发现还是不行。 系统可以搜索到键盘,能配对(配对时在手机上输入1234,按OK,然后在键盘上敲入1234并回车),但显示没有联接上。
据说使用CyanogenMod固件的android手机原生支持HID蓝牙键盘。
方法A: 手动安装HID工具。这个方法只适合部分手机。
使用这个方法要android root权限。
下载下面三个文件:
http://androidobex.googlecode.com/files/hciconfig
http://androidobex.googlecode.com/files/hcitool
http://androidobex.googlecode.com/files/hidd
将它们放到手机/system/xbin或/system/bin目录内。然后打开手机蓝牙,搜索到键盘,并配对上。 (显示配对但未联接状态)
然后开启手机USB调试模式,用数据线连接电脑(电脑上要先安装好手机驱动),使用adb工具在电脑命令行终端上连接手机:
//后为说明文字,不要输入
#adb shell //开始连接手机
#su //切成超级用户
#hidd –server –search //搜索蓝牙设备并联接上。执行前最好关闭身边其它的蓝牙设备。
Searching …
Connecting to device 00:0B:0D:8F:FB:26
#hidd –show //显示联接状态:
00:0B:0D:8F:FB:26 Bluetooth HID Boot Protocol Device [0000:0000] connected [boot-protocol]
这样连接成功了。手机打开一个输入文本的地方,如果成功, 就可以使用蓝牙键盘输入了。 据说这个方法成功后,可以使用中文输入法。 可惜, 在我的手机上,所有操作都没有问题,就是用键盘不能输入任何东西。原因还有待查找。
bluetooth keyboard easy connect(官方市场上有下载)好像可以自动完成上面的操作。 但在我的手机上还是没有作用。
方法B:使用第三方软件
这回我测试了支持HID蓝牙键盘的BlueInput Demo和BlueKeyboard JP。
使用BlueInput可以输入,但要同时按两个按键(比如先按A不放再按B,才能输入B字母),很怪。而且免费版只能用16天, 并且跟Keypro一样, 会在输入的字符间插入版权文字。
BlueKeyboard JP 应该是日本人开发的。 带有英语和日文输入法。安装这个可以在android系统上输入文字(我只试了英文,没有试日文)。跟Keypro一样,ctrl、esc等几个键不能用(这应该是android系统的原因)。 这个免费版不会在文字间输入版权信息, 而且不限时间使用。但会在下方显示google广告(付费版不到2美元,没有广告)。
BlueKeyboard JP安装之后没有程序界面。 只能在语言和输入法设置那里设置它。 因为它也是一个独立的文字输入法, 所以没有办法兼容百度等中文输入法,也就是说没有办法输入中文(除非日语达人使用它的日语输入法功能录入汉字。。。)
其实能输入英文字符,作用也是明显的,特别是对于经常使用ConnectBot这种工具的人。 但可惜的是,即便是BlueKeyboard JP, 也不太稳定, 在断开键盘连接后,有时候我要重新启动手机,重启蓝牙键盘才能重新联接上。
Android设备连接蓝牙键盘的总结
看来我对android系统的期待太高太超前了。相比Palm,BlackBerry和Windows Mobile及ubuntu linux等系统,大多android设备的扩展能力还是非常有限的。 目前,只有少量android手机和平板可以在不安装第三方软件的情况下使用外蓝牙键盘。 而对于更多的android设备, 即便是在安了第三方软件的情况下, 最多也只能实现英文字符的输入。并且会有ctrl、esc等少量字符不支持的问题。
66 |
|
现在,越来越多的平板电脑选择使用android系统。 相对于手机, 平板电脑对键盘的需求又上了一个层次。 我想明年的今天, Android设备连接蓝牙无线键盘或USB有线键盘一定会方便的多。
附:关于给移动设备买键盘的我的想法
键盘应该够尺寸,手感要好。如果输入不方便,也没有外接键盘存在的理由了。
键盘应该轻便,键盘太重的话,加上平板或手机,不如带笔记本了。
最好要带数字键盘。配合中文输入法的话, 有数字键可以用来选候选词。
带支架更好,可以把手机等设备坐在支架上,不用再找支架。
不一定要无线,我感觉使用USB接口的键盘连接更方便一些,而且不用再给键盘找电池。
希望android设备早日添加usb-host功能,并带上键盘驱动。
源文档 <http://www.cslog.cn/Content/android-bluetooth-keyboard/>