原文地址:Android一键锁屏开发全过程【源码】【附图】 作者:狼毒花 转载: http://smallsmile.iteye.com/blog/1374823





1、主程序代码:

Java代码
  1. privateDevicePolicyManagerpolicyManager;
  2. privateComponentNamecomponentName;
  3. @Override
  4. protectedvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.locklayout);
  7. //获取设备管理服务
  8. policyManager=(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
  9. //AdminReceiver继承自DeviceAdminReceiver
  10. componentName=newComponentName(this,AdminReceiver.class);
  11. mylock();
  12. //killMyself,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;
  13. android.os.Process.killProcess(android.os.Process.myPid());
  14. }

2、其中,mylock()为:

Java代码
  1. privatevoidmylock(){
  2. booleanactive=policyManager.isAdminActive(componentName);
  3. if(!active){//若无权限
  4. activeManage();//去获得权限
  5. policyManager.lockNow();//并锁屏
  6. }
  7. if(active){
  8. policyManager.lockNow();//直接锁屏
  9. }
  10. }

3、activeManage()代码为:

Java代码
  1. privatevoidactiveManage(){
  2. //启动设备管理(隐式Intent)-在AndroidManifest.xml中设定相应过滤器
  3. Intentintent=newIntent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
  4. //权限列表
  5. intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,componentName);
  6. //描述(additionalexplanation)
  7. intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"------其他描述------");
  8. startActivityForResult(intent,0);
  9. }

4、AndroidManifest.xml

Java代码 " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="cn.hnu"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  7. <activityandroid:name=".LockFirst"
  8. android:label="@string/app_name">
  9. <intent-filter>
  10. <actionandroid:name="android.intent.action.MAIN"/>
  11. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  12. </intent-filter>
  13. </activity>
  14. <!--设备管理-->
  15. <receiverandroid:name=".AdminReceiver"
  16. android:label="@string/app_name"
  17. android:description="@string/app_name"
  18. android:permission="android.permission.BIND_DEVICE_ADMIN">
  19. <meta-dataandroid:name="android.app.device_admin"
  20. android:resource="@xml/lock_screen"/>
  21. <intent-filter>
  22. <action
  23. android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
  24. </intent-filter>
  25. </receiver>
  26. </application>
  27. </manifest>

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

Java代码 " quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <device-admin
  3. xmlns:android="http://schemas.android.com/apk/res/android">
  4. <uses-policies>
  5. <!--强行锁定在里仅这个是需要的-->
  6. <force-lock/>
  7. <!--清除所有数据(恢复出厂设置)-->
  8. <wipe-data/>
  9. <!--重置密码-->
  10. <reset-password/>
  11. <!--限制密码选择-->
  12. <limit-password/>
  13. <!--监控登录尝试-->
  14. <watch-login/>
  15. </uses-policies>
  16. </device-admin>




请求权限界面




更多相关文章

  1. android EditText设置不可写
  2. android 使用html5作布局文件: webview跟javascript交互
  3. android studio调试c/c++代码
  4. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
  5. 锁屏界面
  6. android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序
  7. Android(安卓)version and Linux Kernel version
  8. Android(安卓)闹钟管理类的使用
  9. Android学习篇之Menu的使用

随机推荐

  1. 禁止横屏和竖屏切换,竖屏后横屏防止再次
  2. [置顶] Android的导航抽屉---Navigation
  3. Android也架构之四:门面模式解析获取的htm
  4. Android(安卓)HttpClient && HttpPost简
  5. Android通过反射EthernetManager Api设置
  6. android 导入项目gradle(无法下载/下载慢/
  7. 【android】手写一套Java的Handler程序,深
  8. Android应用的uid和pid
  9. Android(安卓)官方博客 - Android应用程
  10. Android进程和应用生命周期