一、项目简介:

项目:《Android 一键锁屏》

开发周期:4天

代码量:100行

二、项目流程:

三、项目代码

1、主程序代码:

  1. private DevicePolicyManager policyManager;

  2. private ComponentName componentName;


  3. @Override

  4. protectedvoid onCreate(Bundle savedInstanceState) {

  5. super.onCreate(savedInstanceState);

  6. setContentView(R.layout.locklayout);


  7. //获取设备管理服务

  8. policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);


  9. //AdminReceiver 继承自 DeviceAdminReceiver

  10. componentName = new ComponentName(this, AdminReceiver.class);


  11. mylock();

  12. // killMyself ,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;

  13. android.os.Process.killProcess(android.os.Process.myPid());


  14. }

2、其中,mylock()为:

  1. privatevoid mylock(){


  2. boolean active = policyManager.isAdminActive(componentName);

  3. if(!active){//若无权限

  4. activeManage();//去获得权限

  5. policyManager.lockNow();//并锁屏

  6. }

  7. if (active) {

  8. policyManager.lockNow();//直接锁屏

  9. }

  10. }

3、activeManage()代码为:

  1. privatevoid activeManage() {

  2. // 启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器

  3. Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);


  4. //权限列表

  5. intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);


  6. //描述(additional explanation)

  7. intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "------ 其他描述 ------");


  8. startActivityForResult(intent, 0);

  9. }

4、AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"

  3. package="cn.hnu"

  4. android:versionCode="1"

  5. android:versionName="1.0">

  6. <application android:icon="@drawable/icon" android:label="@string/app_name">

  7. <activity android:name=".LockFirst"

  8. android:label="@string/app_name">

  9. <intent-filter>

  10. <action android:name="android.intent.action.MAIN" />

  11. <category android:name="android.intent.category.LAUNCHER" />

  12. </intent-filter>

  13. </activity>

  14. <!-- 设备管理 -->

  15. <receiver android:name=".AdminReceiver"

  16. android:label="@string/app_name"

  17. android:description="@string/app_name"

  18. android:permission="android.permission.BIND_DEVICE_ADMIN">

  19. <meta-data android: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文件夹下)代码为:

  1. <?xml version="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>


转自:http://www.linuxidc.com/Linux/2012-01/52443.htm


更多相关文章

  1. Android(安卓)代码实现重启
  2. Android(安卓)Timer 更好方法
  3. 【Arcgis android】 离线编辑实现及一些代码段
  4. Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
  5. Android:TextSwitcher、imageSwitcher
  6. Android(安卓)实践项目开发 总结
  7. android 中调用接口发送短信
  8. Android(安卓)实现扫雷小游戏实例代码
  9. Android(安卓)App 防止 后台服务 被杀掉

随机推荐

  1. Android调用系统短信功能发送短信
  2. android通过耳机控制音乐播放器
  3. Android(安卓)View获取焦点
  4. React Native调用Android原生组件
  5. App启动时,白屏和黑屏闪现的问题
  6. Android(安卓)项目规范
  7. Android之SharedPreferences详解
  8. Android(安卓)开发规范总结
  9. Android中的自定义Adapter(继承自BaseAdap
  10. Android Studio module里面放switch语句