亲。还在为自己编写的应用怎样获取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();
}












是的,你没有看错。就是这么简单。