Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让你的android应用只请求超级用户访问一次?_Java_Android_Permissions_Root - Fatal编程技术网

Java 如何让你的android应用只请求超级用户访问一次?

Java 如何让你的android应用只请求超级用户访问一次?,java,android,permissions,root,Java,Android,Permissions,Root,我正在创建我的第一个android应用程序,它正在更改你的MAC地址和设备主机名。但是,我只需要请求超级用户访问一次 这是我当前执行su命令的方式: String[] cmdHost = { "su", "-c", "/system/bin/setprop net.hostname " + strHostname}; execute = Runtime.getRuntime().exec(cmdHost); 每次用户按下按钮更改主机名或MAC地址时,它都会再次请求超级用户访问 我有办法解决这个

我正在创建我的第一个android应用程序,它正在更改你的MAC地址和设备主机名。但是,我只需要请求超级用户访问一次

这是我当前执行su命令的方式:

String[] cmdHost = { "su", "-c", "/system/bin/setprop net.hostname " + strHostname};
execute = Runtime.getRuntime().exec(cmdHost);
每次用户按下按钮更改主机名或MAC地址时,它都会再次请求超级用户访问

我有办法解决这个问题吗?此外,我看到一些应用程序仅在超级用户应用程序日志中执行/system/bin/sh。我的显示了整个命令

多谢各位

检查库-它支持以下操作:

if (RootTools.isAccessGiven()) { /* magic root code here */ }
您可以像这样向shell发送命令

try {
    List<String> output = RootTools.sendShell(command);

    String[] commands = new String[] { command1, command2 };
    List<String> otherOutput = RootTools.sendShell(commands);
} catch (IOException e) {
    // something went wrong, deal with it here
}
试试看{
列表输出=RootTools.sendShell(命令);
字符串[]命令=新字符串[]{command1,command2};
列出otherOutput=RootTools.sendShell(命令);
}捕获(IOE异常){
//出了点问题,在这里处理
}

出于好奇,您是如何更改mac地址的?你用了什么命令?