首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android中判断手机是不是已经Root

2012-11-05 
Android中判断手机是否已经Root本人博客原文 在Android中,虽然我们可以通过Runtime.getRuntime().exec(su

Android中判断手机是否已经Root

本人博客原文

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

privatefinalstaticint=-1;privatefinalstaticint=0;privatefinalstaticint=1;privatestaticint=;publicstaticboolean(){if(==){returntrue;}elseif(==){returnfalse;}File=null;finalString[]={"/system/bin/","/system/xbin/","/system/sbin/","/sbin/","/vendor/bin/"};try{for(int=0;<.;++){=newFile([]+"su");if(!=null&&.()){=;returntrue;}}}catch(Exception){}=;returnfalse;}

结束!

2楼hudashi昨天 17:10
非常感谢你的建议。你说的这个知识方法,我以前还并不知道。n但是我并不建议使用你的方法。首先你那个方法要去执行shell脚本,而且返回值各个手机也许还不一样。
Re: hudashi昨天 17:12
回复hudashin而且也许手机根本就没返回,造成读输出流阻塞。
1楼su1216昨天 12:45
为什么不使用type sun如果有,则返回su is /system/bin/sun比如没有df,执行type dvn返回dv not found

热点排行