Arduino被android识别为键盘

时间:2013-10-06 12:11:43

标签: android keyboard serial-port arduino usb-otg

我为arduino编写了一个简单的固件,用于将串行收到的任何传入数据复制到串行输出。像这样的东西: int serialData = 0;

void setup()
{
  Serial.begin(9600);  
}

void loop()
{
  if (Serial.available() > 0)
  {
    serialData = Serial.read();
    Serial.println(serialData);
  }  
}

现在我希望它使用microUSB-> OTG线+ USB-> microUSB线连接到在Android 4.3上运行的Nexus 7。我安装了一个串行监视器应用程序(https://play.google.com/store/apps/details?id=jp.ksksue.app.terminal&hl=en),并希望通过它编写串行数据。

一旦我将其连接到平板电脑,我最终得到了键盘通知。 Android将此连接识别为键盘。这会在检测到外部键盘时折叠Android键盘。但我可以选择粘贴输入框。这似乎有效。

是否可能

  • 禁用在Android中安装键盘。或
  • 让arduino被识别为键盘以外的东西。

3 个答案:

答案 0 :(得分:2)

编辑/usr/share/arduino/hardware/arduino/cores/arduino/USBDesc.h,并注明该行

#define HID_ENABLED

所以它改为:

/* #define HID_ENABLED */

这是编译到每个草图中以启用USB支持的代码的一部分,此更改将阻止将HID支持编译到将来的草图中。您需要是root用户或使用sudo才能将更改写入文件。 (在进行此更改后是否有必要重新启动Arduino IDE?不确定。)在Windows或OS X上,您需要确定Arduino的支持文件的安装位置并编辑类似文件。

关键字:Arduino连接时禁用Android软键盘

答案 1 :(得分:0)

我觉得你有莱昂纳多,对吧?

AFAIK您无法禁用KeyboardEmulation,但您可以尝试以下操作之一:

  • 使用USB - >串行电缆并使用Leonardo的第二个串行端口
  • 如果您有root电话,请尝试使用adb或Shell仿真器禁用USB Keyboarddriver
  • 修改Arduino固件并删除仿真部分(如果你有另一个Arduino重新编程你的Leonardo)

我认为你可以做的就是。

答案 2 :(得分:0)

此问题的解决方法是安装另一个键盘应用程序,如Go键盘或swype。这会导致在将arduinp连接到Android设备时发出通知,您可以从该设备关闭外部硬件并切换回屏幕键盘。不坚持但有效!