1.定义特殊的广播接收者,系统超级管理员的广播接收者
1
2
3
4
5
6
|
public class MyDeviceAdminReceiver extends DeviceAdminReceiver{ @Override public void onReceive(Context context,Intent intent){ //TODO } } |
2.在AndroidManifest.xml文件中,注册超级管理员的广播接收者
1
2
3
4
5
6
7
8
9
10
|
< receiver android:name = "com.example.receiver.MyDeviceAdminReceiver" android:permission = "android.permission.BIND_DEVICE_ADMIN" > < meta-data android:name = "android.app.device_admin" android:resource = "@xml/device_admin_sample" /> < intent-filter > < action android:name = "android.app.action.DEVICE_ADMIN_ENABLED" /> </ intent-filter > </ receiver > |
3.在res/xml中创建策略声明xml
1
2
3
4
5
6
7
|
< device-admin xmlns:android = "http://schemas.android.com/apk/res/android" > < uses-policies > < force-lock /> <!--强制锁屏--> < wipe-data /> <!--清除数据--> < reset-password /> <!--重置密码--> ... </ uses-policies > |
补充知识:Android通过代码获取ROOT权限
获取Android的ROOT权限其实很简单,只要在Runtime下执行命令"su"就可以了。
首先我们需要检测是否已经有root权限,判断代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 判断是否具有ROOT权限 public static boolean is_root(){ boolean res = false ; try { if ((! new File( "/system/bin/su" ).exists()) && (! new File( "/system/xbin/su" ).exists())){ res = false ; } else { res = true ; }; } catch (Exception e) { } return res; } |
然后我们执行获取root权限的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 获取ROOT权限 public void get_root(){ if (is_root()){ Toast.makeText(mCtx, "已经具有ROOT权限!" , Toast.LENGTH_LONG).show(); } else { try { progress_dialog = ProgressDialog.show(mCtx, "ROOT" , "正在获取ROOT权限..." , true , false ); Runtime.getRuntime().exec( "su" ); } catch (Exception e){ Toast.makeText(mCtx, "获取ROOT权限时出错!" , Toast.LENGTH_LONG).show(); } } } |
以上这篇Android获取超级管理员权限的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/gengkui9897/article/details/81488753