Android应用程序获取ROOT权限的方法(android中如何通过代码检测是否有root权限?)

 private boolean isRoot(String command){
	Process process = null;  
	DataOutputStream os = null;  
	try {  
		
		/*Executes the specified program in a separate native process. 
		 * The new process inherits the environment of the caller.
		 * Calling this method is equivalent to calling exec(prog, null, null).
		 */
		//如果设备获取了root权限,那么程序执行su命令时,就会提示用户进行授权
		process = Runtime.getRuntime().exec("su"); 
		os = new DataOutputStream(process.getOutputStream());  
		os.writeBytes(command+"\n");  
		os.writeBytes("exit\n");  
		os.flush();
		 process.waitFor();  
	 } catch (Exception e) {  
 //如果已经root,但是用户选择拒绝授权,e.getMessage() = write failed: EPIPE (Broken pipe)
 //如果没有root,,e.getMessage()= Error running exec(). Command: [su] Working Directory: null Environment: null
		 Logger.d("Unexpected error - Here is what I know: "+e.getMessage());  
		 return false;  
	 }  
	
	 finally {  
		try {  
			 if (os != null) {  
			os.close();  
			 }  
			 process.destroy();  
		} catch (Exception e) {  
			// nothing  
		}  
	}  
	return true;
 }





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值