Android之——申请应用系统管理员权限

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47010177  

       把应用程序升级为拥有系统管理员权限。写一个广播接收者,给该广播接收者去申请系统管理员的权限,让操作系统给广播接收者授权。(激活系统的授权组件)。在此,本人主要通过申请应用系统管理员权限,锁屏,设置密码,恢复出厂设置几个方面来简单介绍Android中如何给一个应用申请系统管理员的权限操作。其中,这些主要的功能都是通过Android提供的一个类来完成的,这个类就是DevicePolicyManager,有关这个类的详细说明,大家可以参考Android的官方文档,在此,我就不过多阐述了。下面,我们一起来看看如何实现这些功能呢?

1、创建my_admin.xml文件

在Android工程的res目录下新建xml目录,在xml目录下新建my_admin.xml文件

具体实现如下:



        
                
                
                
                
                
        

这个文件中主要定义了一些要获取的系统管理员权限

2、创建布局文件

这个布局文件中有一个按钮,在按钮的onClick事件中实现相应的功能

具体实现如下:



    

3、定义广播接收者MyAdmin

这个类不同于普通的广播接收者,它需要继承DeviceAdminReceiver,有关DeviceAdminReceiver的详细说明,大家可以参考Android的官方文档。

具体实现如下

package com.lyz.local.screen.activity;

import android.app.admin.DeviceAdminReceiver;

/**
 * 广播接收者
 * @author liuyazhuang
 *
 */
public class MyAdmin extends DeviceAdminReceiver {

}

4、完善MainActivity

在这个类中,主要实现了页面按钮的点击事件,在这个点击事件中,通过DevicePolicyManager类实现相应的操作

具体代码如下:

package com.lyz.local.screen.activity;

import android.os.Bundle;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

/**
 * 程序入口
 * @author liuyazhuang
 *
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	public void onClick(View v){
		//获取系统管理权限
		DevicePolicyManager devicePolicyManager = (DevicePolicyManager) this.getSystemService(Context.DEVICE_POLICY_SERVICE);
		//申请权限
		ComponentName componentName = new ComponentName(this, MyAdmin.class);
		//判断该组件是否有系统管理员的权限
		boolean isAdminActive = devicePolicyManager.isAdminActive(componentName);
		if(isAdminActive){
			//锁屏
			devicePolicyManager.lockNow();
			//重置密码
			devicePolicyManager.resetPassword("123", 0);
			//恢复出厂设置(建议不要真机测试)
			devicePolicyManager.wipeData(0);
		}else{
			Intent intent = new Intent();
			//指定动作
			intent.setAction(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
			//指定给哪个组件授权
			intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
			startActivity(intent);
		}
	}
}

5、注册BroadReceiver

最后不要忘了在AndroidManifest.xml中注册BroadReceiver

具体实现如下:




    

    
        
            
                

                
            
        
        
        
			
			
				
			
		
		
    


6、运行效果

1、展示应用授权管理员权限

Android之——申请应用系统管理员权限_第1张图片

2、点击锁屏

Android之——申请应用系统管理员权限_第2张图片

3、输入密码

Android之——申请应用系统管理员权限_第3张图片

Android之——申请应用系统管理员权限_第4张图片

4、卸载应用出现的问题即解决方法

Android之——申请应用系统管理员权限_第5张图片

Android之——申请应用系统管理员权限_第6张图片

Android之——申请应用系统管理员权限_第7张图片

Android之——申请应用系统管理员权限_第8张图片

Android之——申请应用系统管理员权限_第9张图片

Android之——申请应用系统管理员权限_第10张图片

Android之——申请应用系统管理员权限_第11张图片

温馨提示:大家可以到链接http://download.csdn.net/detail/l1028386804/8924361获取完整Android示例代码

你可能感兴趣的:(Android,Android)