一、项目简介:

项目:《Android 一键锁屏》

开发周期:4天

代码量:100行

————————————————————————

二、项目流程:



三、项目代码

1、主程序代码:

        private DevicePolicyManager policyManager;        private ComponentName componentName;                @Override        protected void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.locklayout);                                //获取设备管理服务                policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);                                //AdminReceiver 继承自 DeviceAdminReceiver                componentName = new ComponentName(this, AdminReceiver.class);                                mylock();            //  killMyself ,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;                   android.os.Process.killProcess(android.os.Process.myPid());                            }

2、其中,mylock()为:

        private void mylock(){                boolean active = policyManager.isAdminActive(componentName);        if(!active){//若无权限        activeManage();//去获得权限        policyManager.lockNow();//并锁屏        }            if (active) {                    policyManager.lockNow();//直接锁屏            }        }

3、activeManage()代码为:

        private void activeManage() {                // 启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器                Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);                                //权限列表                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);                        //描述(additional explanation)                        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "------ 其他描述 ------");                                startActivityForResult(intent, 0);        }

4、AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="cn.hnu"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".LockFirst"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <!-- 设备管理 -->        <receiver android:name=".AdminReceiver"                  android:label="@string/app_name"                  android:description="@string/app_name"                  android:permission="android.permission.BIND_DEVICE_ADMIN">                <meta-data android:name="android.app.device_admin"                           android:resource="@xml/lock_screen" />                   <intent-filter>                        <action                           android:name="android.app.action.DEVICE_ADMIN_ENABLED" />                   </intent-filter>        </receiver>    </application>    </manifest> 

5、其中lock_screen.xml(lock_screen.xml文件放在res/xml文件夹下)代码为:

<?xml version="1.0" encoding="UTF-8"?> <device-admin  xmlns:android="http://schemas.android.com/apk/res/android">    <uses-policies>        <!-- 强行锁定  在里仅这个是需要的-->        <force-lock />        <!-- 清除所有数据(恢复出厂设置) -->        <wipe-data />         <!-- 重置密码 -->        <reset-password />        <!-- 限制密码选择 -->         <limit-password />         <!-- 监控登录尝试 -->          <watch-login />    </uses-policies></device-admin>

四、项目预览



请求权限界面



锁屏成功

五、附注

程序运行在android2.2以上平台(含2.2)

更多相关文章

  1. android新建项目报关于progurad.xml不存在错误
  2. Android(安卓)layout 设置圆角 内部 imageview 无效果
  3. Google C2Dm相关文章
  4. MQTT的学习研究(十五) MQTT 和android整合文章
  5. android 实现代码关机
  6. android 截屏
  7. Android(安卓)开源项目集合
  8. Android调用系统分享
  9. android 查看 当前activity

随机推荐

  1. Android(安卓)页面回调跳转(startActivity
  2. Android之隐式意图(Intent)如何查找匹配
  3. Android控件之TextView全解析
  4. 从零开始--系统深入学习android(实践-让我
  5. Android内核详解之Low memory killer
  6. 在Ubuntu7.10上编译android
  7. android差分更新之服务端
  8. Ubuntu下 eclipse搭建android集成开发环
  9. Android开发人员终于在“app-构建控制台
  10. Android(安卓)EGL