您的位置:首页 > 移动开发 > Android开发

Android中判断手机是否已经Root

2012-11-17 09:49 357 查看
在Android中,虽然我们可以通过Runtime.getRuntime().exec("su")的方式来判断一个手机是否Root,
但是该方式会弹出对话框让用户选择是否赋予该应用程序Root权限,有点不友好。
其实我们可以在环境变量$PATH所列出的所有目录中查找是否有su文件来判断一个手机是否Root。
当然即使有su文件,也并不能完全表示手机已经Root,但是实际使用中作为一个初略的判断已经很好了。
另外出于效率的考虑,我们可以在代码中直接把$PATH写死。
实例1

private final static int kSystemRootStateUnknow=-1;    private final static int kSystemRootStateDisable=0;    private final static int kSystemRootStateEnable=1;    private static int systemRootState=kSystemRootStateUnknow;       public static boolean isRootSystem()    {     if(systemRootState==kSystemRootStateEnable)     {      return true;     }     else if(systemRootState==kSystemRootStateDisable)     {
      return false;     }  File f=null;  final String kSuSearchPaths[]={"/system/bin/","/system/xbin/","/system/sbin/","/sbin/","/vendor/bin/"};  try{  for(int i=0;i<kSuSearchPaths.length;i++)  {   f=new File(kSuSearchPaths[i]+"su");   if(f!=null&&f.exists())   {    systemRootState=kSystemRootStateEnable;    return true;   }  }  }catch(Exception e)  {  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: