急 急 在android程序中如何执行ifconfig命令来修改android 的ip地址,跪求大神指点
急 急 在android程序中怎么执行ifconfig命令来修改android 的ip地址,跪求大神指点!
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up");
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
int exitVal = proc.waitFor();
System.out.println("--->Process exitValue: " + exitVal);
这样执行不成功,但是在cmd命令行里,执行了adb shell 后再执行ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up可以修改成功,求高手指点!!!!
------解决方案--------------------
估计没有权限。没有做过这个需求,帮顶一下。
------解决方案--------------------
你这是要运行shell么
------解决方案--------------------
------解决方案--------------------
首先要ROOT,然后执行shell语句,好像你写的执行shell语句方法有误,,
------解决方案--------------------
Stringcom={shell语句};
try{
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
// Execute commands that require root access
os.writeBytes(com+ "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
}catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
------解决方案--------------------
应该是权限问题吧,把程序倒到/system/app下面试一试
------解决方案--------------------
Runtime.getRuntime().exec("adb shell am ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up");
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up");
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
int exitVal = proc.waitFor();
System.out.println("--->Process exitValue: " + exitVal);
这样执行不成功,但是在cmd命令行里,执行了adb shell 后再执行ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up可以修改成功,求高手指点!!!!
------解决方案--------------------
估计没有权限。没有做过这个需求,帮顶一下。
------解决方案--------------------
你这是要运行shell么
------解决方案--------------------
1、引入:
import android.provider.Settings;
import android.content.ContentResolver;
ps:在Setting.System中有以下标志
WIFI_USE_STATIC_IP
WIFI_STATIC_IP
WIFI_STATIC_NETMASK
WIFI_STATIC_GATEWAY
WIFI_STATIC_DNS1 and WIFI_STATIC_DNS2
2、在AndroidManifest中加入<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
3、在Activity中可以这样用:
final ContentResolver mContentResolver = getContentResolver();
Settings.System.putInt( mContentResolver, Settings.System.WIFI_USE_STATIC_IP, 1);
Settings.System.putString( mContentResolver, Settings.System.WIFI_STATIC_IP, "你的ip地址");
------解决方案--------------------
首先要ROOT,然后执行shell语句,好像你写的执行shell语句方法有误,,
------解决方案--------------------
Stringcom={shell语句};
try{
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
// Execute commands that require root access
os.writeBytes(com+ "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
}catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
------解决方案--------------------
应该是权限问题吧,把程序倒到/system/app下面试一试
------解决方案--------------------
Runtime.getRuntime().exec("adb shell am ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up");