如何从 android 应用访问标准输入?

How to access standard input from android app?

我正在使用似乎输出到标准输入的磁条reader。当我将它插入我的 android 设备时,打开一个记事本应用程序并滑动,它会自动将一个字符串粘贴到应用程序中,就像我输入它一样。 (因此我认为它输出到标准 IO 的原因)。我想以编程方式读取数据。如何访问 android 的标准 IO?

我已经尝试从 System.in 制作扫描仪以及从 System.in 制作输入流,但我没有得到任何结果。

不,这不会通过标准输入工作。这对 Android 应用程序没有意义(stdin、stdout 和 stderr 存在,但通常未使用)。

相反,Android有自己的输入处理结构,例如:

https://source.android.com/devices/input/overview.html

很可能您的 reader 是一个 USB HID 设备,android 正在处理类似于物理键盘的东西,并处理输入字符,就好像它们是在此类设备上键入的键事件一样。

正常 Android 应用程序输入处理方法(按键事件、输入到聚焦文本字段等)会在您的应用程序位于前台时捕捉到这种情况。如果不是,您可能无法为您的应用保留输入,除非您可以修改 Android 安装,或将您的设备更改为自定义非 HID 外围设备。