您的位置:首页 > 移动开发 > Android开发

Android一键锁屏开发全过程

2013-07-29 15:32 274 查看
一、项目简介:

项目:《Android 一键锁屏》

开发周期:4天

代码量:100行

二、项目流程:

三、项目代码

1、主程序代码:

1.private DevicePolicyManager policyManager;

2.private ComponentName componentName;

3.

4.@Override

5.protected void onCreate(Bundle savedInstanceState) {

6. super.onCreate(savedInstanceState);

7. setContentView(R.layout.locklayout);

8.

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

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

11.

12. //AdminReceiver 继承自 DeviceAdminReceiver

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

14.

15. mylock();

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

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

18.

19.}

2、其中,mylock()为:

1.private void mylock(){

2.

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

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

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

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

7. }

8. if (active) {

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

10. }

11.}

3、activeManage()代码为:

1.private void activeManage() {

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

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

4.

5. //权限列表

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

7.

8. //描述(additional explanation)

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

10.

11. startActivityForResult(intent, 0);

12.}

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.

28.

29.</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>

四、项目预览

请求权限界面

锁屏成功

五、附注

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

上一页

1

2

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-01/52443p2.htm

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-01/52443.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: