亲。还在为自己编写的应用怎样获取Root权限而苦恼吗。还在为网上提供千千万万(有点夸张)的解决办案而不能解决你的问题而苦恼吗。
福音来啦,花一分钟看完这篇文章你会认为原来仅仅需一个jar包即能够实现。 当然这得在你的设备已经Root了的情况下使用。
jar包导入project
1. 在Eclipse中左右你的项目选择Build Path -> config build path
2. 选择add External Jar 后选择RootTools.jar 文件。
3. 再之后选择Order and Export 保证刚才加进来的jar文件已经被选中。并将它移到顶端。注意右边的菜单有一个top的button。按它就能够移到顶端了
检查root权限
if (RootTools.isRootAvailable()) {
// su exists, do something
} else {
// do something else
}
有一个方法不止能够检查root权限,还会尝试获取root权限。
if (RootTools.isAccessGiven()) {
// your app has been granted root access
}
补充说明一个root权限下静默安装的演示样例
String commandStr = "pm install -r your_apk_path";
Command command = new Command(0,commandStr){
@Override
public void commandCompleted(int id, int exitCode) {
//命令运行完毕后会调用此方法
}
@Override
public void commandOutput(int id, String line) {
//命令运行的过程中会运行此方法,line參数可用于调试
}
@Override
public void commandTerminated(int id, String reason) {
//命令被取消后的运行此方法
}
};
try {
RootTools.getShell(true).add(command);
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (RootDeniedException e) {
e.printStackTrace();
}
亲。还在为自己编写的应用怎样获取Root权限而苦恼吗。还在为网上提供千千万万(有点夸张)的解决办案而不能解决你的问题而苦恼吗。
福音来啦,花一分钟看完这篇文章你会认为原来仅仅需一个jar包即能够实现。 当然这得在你的设备已经Root了的情况下使用。
jar包导入project
1. 在Eclipse中左右你的项目选择Build Path -> config build path
2. 选择add External Jar 后选择RootTools.jar 文件。
3. 再之后选择Order and Export 保证刚才加进来的jar文件已经被选中。并将它移到顶端。注意右边的菜单有一个top的button。按它就能够移到顶端了
检查root权限
if (RootTools.isRootAvailable()) {
// su exists, do something
} else {
// do something else
}
有一个方法不止能够检查root权限,还会尝试获取root权限。
if (RootTools.isAccessGiven()) {
// your app has been granted root access
}
补充说明一个root权限下静默安装的演示样例
String commandStr = "pm install -r your_apk_path";
Command command = new Command(0,commandStr){
@Override
public void commandCompleted(int id, int exitCode) {
//命令运行完毕后会调用此方法
}
@Override
public void commandOutput(int id, String line) {
//命令运行的过程中会运行此方法,line參数可用于调试
}
@Override
public void commandTerminated(int id, String reason) {
//命令被取消后的运行此方法
}
};
try {
RootTools.getShell(true).add(command);
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (RootDeniedException e) {
e.printStackTrace();
}
是的,你没有看错。就是这么简单。