DevicePolicyManagert设备管理员

Manifest.xml
<receiver
	android:name=".device"
	android:permission="android.permission.BIND_DEVICE_ADMIN">
	<meta-data
		android:name="android.app.device_admin"
		android:resource="@xml/device_admin" />
	<intent-filter>
		<action
			android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
	</intent-filter>
</receiver>
权限文件
<?xml version="1.0" encoding="utf-8"?>
<device-admin
	xmlns:android="http://schemas.android.com/apk/res/android">
	<uses-policies>
		<limit-password />
		<!-- 限制密码类型 -->
		<watch-login />
		<!-- 监控登录尝试 -->
		<reset-password />
		<!-- 重置密码 -->
		<force-lock />
		<!--锁屏 -->
		<wipe-data />
		<!-- 恢复出厂设置 -->
	</uses-policies>
</device-admin>
mainAcitvity.java
package t.t;

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

public class mainActivity extends Activity {
    DevicePolicyManager devicePolicyManager;
    ComponentName componentName;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        componentName = new ComponentName(mainActivity.this, device.class);
    }

    // 激活程序
    public void btnjihuo(View v) {
        if(!devicePolicyManager.isAdminActive(componentName)) {
            Intent intent = new Intent(
                    DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                    componentName);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "提示文字");
            startActivityForResult(intent, 1);
        }
    }

    // 移除程序 如果不移除程序 APP无法被卸载
    public void btnxiezai(View v) {
        devicePolicyManager.removeActiveAdmin(componentName);
    }

    // 设置解锁方式 不需要激活就可以运行
    public void btnszmm(View v) {
        Intent intent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
        startActivity(intent);
    }

    // 设置解锁方式
    public void btnmm(View v) {
        // PASSWORD_QUALITY_ALPHABETIC
        // 用户输入的密码必须要有字母(或者其他字符)。
        // PASSWORD_QUALITY_ALPHANUMERIC
        // 用户输入的密码必须要有字母和数字。
        // PASSWORD_QUALITY_NUMERIC
        // 用户输入的密码必须要有数字
        // PASSWORD_QUALITY_SOMETHING
        // 由设计人员决定的。
        // PASSWORD_QUALITY_UNSPECIFIED
        // 对密码没有要求。
        Intent intent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
        devicePolicyManager.setPasswordQuality(componentName,
                DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
        startActivity(intent);
    }

    // 立刻锁屏
    public void btnlock(View v) {
        devicePolicyManager.lockNow();
    }

    // 设置5秒后锁屏
    public void btnlocktime(View v) {
        devicePolicyManager.setMaximumTimeToLock(componentName, 5000);
    }

    // 恢复出厂设置
    public void btnwipe(View v) {
        devicePolicyManager.wipeData(0);
    }

    // 设置密码锁
    public void btnl(View v) {
        devicePolicyManager.resetPassword("asdf",
                DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
        devicePolicyManager.lockNow();

    }
}
device.java
package t.t;

import android.app.admin.DeviceAdminReceiver;
import android.content.Context;
import android.content.Intent;

/**
 * @version 2012-9-27 上午09:25:21
 **/
public class device extends DeviceAdminReceiver {
    @Override
    public void onEnabled(Context context, Intent intent) {
        // 设备管理:可用
    }

    @Override
    public void onDisabled(Context context, Intent intent) {

        // 设备管理:不可用
    }

    @Override
    public CharSequence onDisableRequested(Context context, Intent intent) {
        return "这是一个可选的消息,警告有关禁止用户的请求";
    }

    @Override
    public void onPasswordChanged(Context context, Intent intent) {
        // 设备管理:密码己经改变
    }

    @Override
    public void onPasswordFailed(Context context, Intent intent) {
        // 设备管理:改变密码失败
    }

    @Override
    public void onPasswordSucceeded(Context context, Intent intent) {
        // 设备管理:改变密码成功
    }
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的:(android,service,Class,encoding)