Android中判断手机是否已经Root

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

本人博客原文

  在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 )
  {
  }
  systemRootState = kSystemRootStateDisable ;
  return false ;
    }

结束!


           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/fjjjyf/article/details/83997812