Android获取超级管理员权限的实现
1.定义特殊的广播接收者,系统超级管理员的广播接收者
public class MyDeviceAdminReceiver extends DeviceAdminReceiver{ @Override public void onReceive(Context context,Intent intent){ //TODO } }
2.在AndroidManifest.xml文件中,注册超级管理员的广播接收者
<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
<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权限,判断代码如下:
// 判断是否具有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权限的代码
// 获取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获取超级管理员权限的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)
这篇文章主要介绍了Android中的SQL查询语句LIKE绑定参数问题解决办法,本文使用的是sqlite数据库,需要的朋友可以参考下2014-06-06RxJava2和Retrofit2封装教程(整洁、简单、实用)
这篇文章主要给大家介绍了关于RxJava2和Retrofit2封装的相关资料,文中通过示例代码介绍的非常详细,整洁、简单、实用,非常适合大家学习使用,需要的朋友可以参考下2018-11-11Android 开发音频组件(Vitamio FAQ)详细介绍
本文主要介绍Android开发音频播放器,Vitamio是Android播放器组件,支持几乎所有视频格式和网络视频流,希望能帮助开发Android 音频播放的小伙伴2016-07-07
最新评论