判断手机是否root了

 1 public synchronized boolean getRootAhth()
 2         {
 3                 Process process = null;
 4                 DataOutputStream os = null;
 5                 try
 6                 {
 7                         process = Runtime.getRuntime().exec("su");
 8                         os = new DataOutputStream(process.getOutputStream());
 9                         os.writeBytes("exit\n");
10                         os.flush();
11                         int exitValue = process.waitFor();
12                         if (exitValue == 0)
13                         {
14                                 return true;
15                         } else
16                         {
17                                 return false;
18                         }
19                 } catch (Exception e)
20                 {
21                         Log.d("*** DEBUG ***", "Unexpected error - Here is what I know: "
22                                         + e.getMessage());
23                         return false;
24                 } finally
25                 {
26                         try
27                         {
28                                 if (os != null)
29                                 {
30                                         os.close();
31                                 }
32                                 process.destroy();
33                         } catch (Exception e)
34                         {
35                                 e.printStackTrace();
36                         }
37                 }
38         }

在运行程序的时候发现的问题,如果手机root过会弹出授权管理的对话框,如果选择允许exitValue = process.waitFor();就是0,判断不会有问题。如果选择拒绝或者不选择等倒计时结束exitValue = process.waitFor();值是255,就会判断没root。
所以判断条件要改一下if (exitValue == 0||exitValue == 255)。只在我手机上测了,不知道其他机器的值是不是一样,大家可以试一下,有不一样的贴出来。

转载于:https://www.cnblogs.com/liyanqing/archive/2012/11/20/2779079.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值