Android -- 程序判断手机ROOT状态,获取ROOT权限

判断手机是否具有ROOT权限                                                           

/**
     * 判断手机是否ROOT
     */
    public boolean isRoot() {  

        boolean root = false;  

        try {
            if ((!new File("/system/bin/su").exists())
                    && (!new File("/system/xbin/su").exists())) {
                root = false;
            } else {
                root = true;
            }  

        } catch (Exception e) {
        }  

        return root;
    }

上面返回的参数就知道手机是否具有ROOT权限了。

向ROOT权限发送请求信息,以获取ROOT权限                                    

此方法不涉及底层, 这种方式需要用户点击确认才可以获取.

public class MainActivity extends Activity {  

    /**
     * 创建
     */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  

        // 返回系统包名
        String apkRoot = "chmod 777 " + getPackageCodePath();
        RootCommand(apkRoot);  

    }  

    /**
     * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限)
     *
     * @param command
     *            命令: String apkRoot="chmod 777 "+getPackageCodePath();
     *            RootCommand(apkRoot);
     * @return 应用程序是/否获取Root权限
     */
    public static boolean RootCommand(String command) {  

        Process process = null;
        DataOutputStream os = null;  

        try {  

            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) {
            Log.d("*** DEBUG ***", "ROOT REE" + e.getMessage());
            return false;  

        } finally {  

            try {
                if (os != null) {
                    os.close();
                }
                process.destroy();
            } catch (Exception e) {
            }
        }  

        Log.d("*** DEBUG ***", "Root SUC ");
        return true;  

    }  

}

我是天王盖地虎的分割线                                                                 

参考:http://blog.csdn.net/fm9333/article/details/12752415

Android -- 程序判断手机ROOT状态,获取ROOT权限

时间: 2024-11-01 02:02:33

Android -- 程序判断手机ROOT状态,获取ROOT权限的相关文章

十九、android中判断sim卡状态和读取联系人资料的方法

在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. PhoneTest.java package com.android.test; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.datab

android中判断sim卡状态和读取联系人资料的方法

在写程序中,有时候可能需要获取sim卡中的一些联系人资料.在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息. PhoneTest.java package com.android.test; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.datab

Android之监测手机网络状态的广播

Android之监测手机网络状态的广播 Android 监控网络状态 Android利用广播监听设备网络连接(断网)的变化情况

红米手机3S 3X获取ROOT权限的经验

红米手机3S 3X有木有方法启用了Root权限?大伙知道,android设备有Root权限,一旦手机启用了root相关权限,就能够实现更强的功能,举个例子,大伙部门的营销部门的妹子,使用大多数营销应用都需要在Root权限下使用,如果手机无能获的root的权限,则不能正常使用具体的功能.红米手机3S 3X开发版系统本身具备root权限管理工具,但是,如果你使用的是红米手机3S 3X稳定版,建议可以先将红米手机3S 3X刷入开发版,再进行root权限开启,下面给大伙讲解如何获得红米手机3S 3X的r

android设备判断网络连接状态

android开发中,在做网络请求前判断当前网络连接状态有时很有必要.本文将介绍如何获取android设备当前网络连接状态! 所需权限(AndroidManifest.xml文件中添加): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> Java代码(MainActivity.java文件) package com.example.androidtest; import a

【Android】如何实现Android程序在手机锁屏后继续运行

最近笔者在做一个功能,就是实现Android程序在锁屏后可以继续运行,笔者在网上查了一些资料,现在整理出来,希望能够对你有所帮助. 1.如何监听屏幕锁屏 监听屏幕锁屏可以通过如下方式来实现,直接通过代码来判定,或通过监听器来实现 1)通过代码来判定屏幕的锁屏状态 可以通过PowerManager的isScreenOn方法,代码如下: PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);

android判断手机SIM状态

public String readSIMCard() { TelephonyManager tm = (TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);//取得相关系统服务 StringBuffer sb = new StringBuffer(); switch(tm.getSimState()){ //getSimState()取得sim的状态 有下面6中状态 case TelephonyManager.SIM_STATE_

Android之判断手机是否联网

public static boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManag

Android中判断SD卡状态

1 String status = Environment.getExternalStorageState(); 2 if (status.equalsIgnoreCase(Environment.MEDIA_MOUNTED)) { 3 Toast.makeText(TechoLite.this, "SD卡存在", Toast.LENGTH_LONG).show(); 4 // 此时SD是可读写的 5 } else if (status.equalsIgnoreCase(Environ