USB 대용량 저장 장치를 안드로이드 물건을 실행하는 Raspberry Pi에 마운트하려고합니다. 나는 this 대답을 통해 명령 줄 ADB 셸을 사용하여 마운트하는 방법을 보여 주었다. 하지만 문제는 장치가 부팅 될 때마다 해당 명령을 실행해야한다는 것입니다. 내 발동 활동 중 onCreate()
에 USB 드라이브를 마운트하고 싶습니다. 여기 코드는 다음과 같습니다활동을 시작할 때 USB 엄지 드라이브를 안드로이드 물건에 장착하십시오.
//Here is the mount drive function which I called in onCreate of my activity.
private void mountDrive() throws IOException, InterruptedException {
Process mProcess = Runtime.getRuntime().exec("/system/xbin/su");
BufferedReader reader = new BufferedReader(new InputStreamReader(mProcess.getInputStream()));
DataOutputStream dos = new DataOutputStream(mProcess.getOutputStream());
dos.writeBytes("mkdir /mnt/usb\n");
dos.flush();
dos.writeBytes("mount -t vfat -o rw /dev/block/sda1 /mnt/usb\n");
dos.flush();
dos.writeBytes("exit\n");
//Read the response
String line, result = "";
while ((line = reader.readLine()) != null) {
result += line;
Log.d("CMD","RESULT:"+result);
}
reader.close();
dos.flush();
dos.close();
mProcess.waitFor();
}
하지만이 오류가 점점 오전 :
I/sh: type=1400 audit(0.0:31): avc: denied { read } for name="/" dev="mmcblk0p6" ino=2 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir permissive=1
I/sh: type=1400 audit(0.0:32): avc: denied { open } for path="/" dev="mmcblk0p6" ino=2 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir permissive=1
W/System.err: java.io.IOException: Cannot run program "su": error=13, Permission denied
W/System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:983)
W/System.err: at java.lang.Runtime.exec(Runtime.java:691)
W/System.err: at java.lang.Runtime.exec(Runtime.java:524)
W/System.err: at java.lang.Runtime.exec(Runtime.java:421)
가 어떻게 안드로이드 것들에 내 응용 프로그램에서 사용하는 USB 장치를 장착 할 수 있습니까?
Android에서는 자동으로 마운트됩니다. 그래서 왜 이것이 안드로이드 것들 아래에서 발생하지 않을 지 궁금해. – greenapps