<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) { // 设备管理:改变密码成功 } }
版权声明:本文为博主原创文章,未经博主允许不得转载。