我已授予对 UsbDevice 的访问权限,获取了他的设备名称 ( /dev/bus/usb/002/002
) 并将其传递给执行的进程以使用 USB 设备(更详细的是avrdude )
Process process = Runtime.getRuntime().exec(commandArray);
并得到“权限被拒绝”错误:
W/System.err( 9368): avrdude: ser_open(): can't open device "/dev/bus/usb/002/002": Permission denied
W/System.err( 9368): ioctl("TIOCMGET"): Invalid argument
Avrdude 位于应用程序沙箱 ( /data/data/%package%
) 中,因此它不需要 root 即可执行 avrdude(当然)。我相信如果我授予对 UsbDevice android 应用程序进程的访问权限,并且所有子进程(avrdude)都可以访问相应的 USB 设备文件。
有什么想法吗?不希望生根。