zoukankan      html  css  js  c++  java
  • android项目设备管理器

    设备管理器就是能够清除数据,和锁屏等等的操作

    在这里我们要通过短信拦截器(广播接受者进行拦截)然后根据短信内容进行拦截,

    具体操作是这样的:

    首先要建立一个类来继承DeviceAdminReceiver

    然后在清单文件里进行注册


              <receiver
                android:name=".AdminRecever"
                android:description="@string/sample_device_admin_description"
                android:label="@string/sample_device_admin"
                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>

    注意这里要引用一个xml文件

    在res目录下建立一个xml文件夹

    然后将

    <device-admin xmlns:android="http://schemas.android.com/apk/res/android">
      <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
        <force-lock />
        <wipe-data />
        <expire-password />
        <encrypted-storage />
        <disable-camera />
      </uses-policies>
    </device-admin>

    拷贝进去

    最后就可以在activity里进行操作了

    package com.itheima52.admin;
    
    import android.app.Activity;
    import android.app.admin.DevicePolicyManager;
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private DevicePolicyManager mDPM;
        private ComponentName mDeviceAdminSample;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);// 获取设备策略服务
            mDeviceAdminSample = new ComponentName(this, AdminReceiver.class);// 设备管理组件
    
            // mDPM.lockNow();// 立即锁屏
            // finish();
        }
    
        // 激活设备管理器, 也可以在设置->安全->设备管理器中手动激活
        public void activeAdmin(View view) {
            Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                    mDeviceAdminSample);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "哈哈哈, 我们有了超级设备管理器, 好NB!");
            startActivity(intent);
        }
    
        // 一键锁屏
        public void lockScreen(View view) {
            if (mDPM.isAdminActive(mDeviceAdminSample)) {// 判断设备管理器是否已经激活
                mDPM.lockNow();// 立即锁屏
                mDPM.resetPassword("123456", 0);
            } else {
                Toast.makeText(this, "必须先激活设备管理器!", Toast.LENGTH_SHORT).show();
            }
        }
    
        public void clearData(View view) {
            if (mDPM.isAdminActive(mDeviceAdminSample)) {// 判断设备管理器是否已经激活
                mDPM.wipeData(0);// 清除数据,恢复出厂设置
            } else {
                Toast.makeText(this, "必须先激活设备管理器!", Toast.LENGTH_SHORT).show();
            }
        }
    
        public void unInstall(View view) {
            mDPM.removeActiveAdmin(mDeviceAdminSample);// 取消激活
    
            // 卸载程序
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_DEFAULT);
            intent.setData(Uri.parse("package:" + getPackageName()));
            startActivity(intent);
        }
    }
  • 相关阅读:
    塔防游戏 代码project as 分享
    iOS网络监控— BMReachability
    Oracle学习(五):多表查询
    Servlet之生命周期【入门版(刚開始学习的人必看)】
    mysql 流程函数 存储引擎 InnoDB简单特性
    js
    UVa 10245
    Ubuntu14.04怎样使用root登录
    leetCode(29):Happy Number
    WebService:asp.net类库中添加WebService引用出现问题解决方法
  • 原文地址:https://www.cnblogs.com/84126858jmz/p/5012486.html
Copyright © 2011-2022 走看看