Java Android:Runtime exec()提供空环境?

Java Android:Runtime exec()提供空环境?,java,android,android-permissions,android-runtime,Java,Android,Android Permissions,Android Runtime,我正在尝试在运行时exec()中运行以下命令: 我得到的错误是: 07-14 12:23:16.548: W/System.err(14272): java.io.IOException: Error running exec(). Command: [arp, -n] Working Directory: null Environment: null 07-14 12:23:16.668: W/System.err(14272): at java.lang.ProcessMana

我正在尝试在运行时exec()中运行以下命令:

我得到的错误是:

    07-14 12:23:16.548: W/System.err(14272): java.io.IOException: Error running exec(). Command: [arp, -n] Working Directory: null Environment: null
07-14 12:23:16.668: W/System.err(14272):    at java.lang.ProcessManager.exec(ProcessManager.java:211)
07-14 12:23:16.668: W/System.err(14272):    at java.lang.Runtime.exec(Runtime.java:168)
07-14 12:23:16.668: W/System.err(14272):    at java.lang.Runtime.exec(Runtime.java:241)
07-14 12:23:16.668: W/System.err(14272):    at java.lang.Runtime.exec(Runtime.java:184)
07-14 12:23:16.678: W/System.err(14272):    at com.app.president.FindDevices$8.run(FindDevices.java:225)
07-14 12:23:16.678: W/System.err(14272):    at android.os.Handler.handleCallback(Handler.java:725)
07-14 12:23:16.678: W/System.err(14272):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-14 12:23:16.678: W/System.err(14272):    at android.os.Looper.loop(Looper.java:137)
07-14 12:23:16.678: W/System.err(14272):    at android.app.ActivityThread.main(ActivityThread.java:5099)
07-14 12:23:16.678: W/System.err(14272):    at java.lang.reflect.Method.invokeNative(Native Method)
07-14 12:23:16.678: W/System.err(14272):    at java.lang.reflect.Method.invoke(Method.java:511)
07-14 12:23:16.678: W/System.err(14272):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:803)
07-14 12:23:16.678: W/System.err(14272):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570)
07-14 12:23:16.678: W/System.err(14272):    at dalvik.system.NativeStart.main(Native Method)
07-14 12:23:16.678: W/System.err(14272): Caused by: java.io.IOException: Permission denied
07-14 12:23:16.678: W/System.err(14272):    at java.lang.ProcessManager.exec(Native Method)
07-14 12:23:16.678: W/System.err(14272):    at java.lang.ProcessManager.exec(ProcessManager.java:209)
07-14 12:23:16.688: W/System.err(14272):    ... 13 more
我要检查的日志如下:

07-14 12:23:19.971: E/check(14272): Error running exec(). Command: [arp, -a] Working Directory: null Environment: null
这段代码的作用是,它尝试读取arp缓存,以获取所有MAC地址及其各自的IP地址

有人能帮我做这个,让我的代码运行吗。我想知道为什么下面的代码会出现这个错误?执行此操作是否需要任何权限?到目前为止,我授予的许可是:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

提前感谢:)

添加此权限:

android.permission.WRITE_EXTERNAL_STORAGE

这有什么帮助?我没有向任何外部存储器写入任何内容!那为什么要使用这个权限呢?@UjjwalSyal:这是一个IO例外,所以会有与环境相关的IO权限或根访问权限来执行这些命令,也许超级用户权限会有所帮助。这是否意味着我需要根设备?或者有没有一种不需要根目录的方法?@UjjwalSyal:是的,它需要根目录设备。但不幸的是,我对超级用户权限不是很有经验!搜索将是最好的!我想做的是,做一个像菲林一样的网络扫描仪。为此,我需要读取ARP缓存。你能建议其他方法吗?
android.permission.WRITE_EXTERNAL_STORAGE