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

Android一键锁屏开发全过程

2013-03-22 13:24 162 查看
一、项目简介:

项目:《Android一键锁屏》

开发周期:4天

代码量:100行

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

二、项目流程:





001
三、项目代码
002
1
、主程序代码:
003
Java代码
004
private
DevicePolicyManager
policyManager;
005
private
ComponentName
componentName;
006
007
@Override
008
protected
void
onCreate(Bundle
savedInstanceState){
009
super
.onCreate(savedInstanceState);
010
setContentView(R.layout.locklayout);
011
012
//获取设备管理服务
013
policyManager
=(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
014
015
//AdminReceiver
继承自DeviceAdminReceiver
016
componentName
=
new
ComponentName(
this
,
AdminReceiver.
class
);
017
018
mylock();
019
//
killMyself,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;
020
android.os.Process.killProcess(android.os.Process.myPid());
021
022
}
023
024
2
、其中,mylock()为:
025
Java代码
026
private
void
mylock(){
027
028
boolean
active
=policyManager.isAdminActive(componentName);
029
if
(!active){
//若无权限
030
activeManage();
//去获得权限
031
policyManager.lockNow();
//并锁屏
032
}
033
if
(active)
{
034
policyManager.lockNow();
//直接锁屏
035
}
036
}
037
3
、activeManage()代码为:
038
Java代码
039
private
void
activeManage()
{
040
//
启动设备管理(隐式Intent)-在AndroidManifest.xml中设定相应过滤器
041
Intent
intent=
new
Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
042
043
//权限列表
044
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
componentName);
045
046
//描述(additional
explanation)
047
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"------
其他描述------"
);
048
049
startActivityForResult(intent,
0
);
050
}
051
052
4
、AndroidManifest.xml
053
Java代码
054
<?xml
version=
"1.0"
encoding=
"utf-8"
?>
055
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
056
package
=
"cn.hnu"
057
android:versionCode=
"1"
058
android:versionName=
"1.0"
>
059
<application
android:icon=
"@drawable/icon"
android:label=
"@string/app_name"
>
060
<activity
android:name=
".LockFirst"
061
android:label=
"@string/app_name"
>
062
<intent-filter>
063
<action
android:name=
"android.intent.action.MAIN"
/>
064
<category
android:name=
"android.intent.category.LAUNCHER"
/>
065
</intent-filter>
066
</activity>
067
<!--
设备管理-->
068
<receiver
android:name=
".AdminReceiver"
069
android:label=
"@string/app_name"
070
android:description=
"@string/app_name"
071
android:permission=
"android.permission.BIND_DEVICE_ADMIN"
>
072
<meta-data
android:name=
"android.app.device_admin"
073
android:resource=
"@xml/lock_screen"
/>
074
<intent-filter>
075
<action
076
android:name=
"android.app.action.DEVICE_ADMIN_ENABLED"
/>
077
</intent-filter>
078
</receiver>
079
</application>
080
081
082
</manifest>
083
5
、其中lock_screen.xml(lock_screen.xml文件放在res/xml文件夹下)代码为:
084
Java代码
085
<?xml
version=
"1.0"
encoding=
"UTF-8"
?>
086
<device-admin
087
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
088
<uses-policies>
089
<!--
强行锁定在里仅这个是需要的-->
090
<force-lock
/>
091
<!--
清除所有数据(恢复出厂设置)-->
092
<wipe-data
/>
093
<!--
重置密码-->
094
<reset-password
/>
095
<!--
限制密码选择-->
096
<limit-password
/>
097
<!--
监控登录尝试-->
098
<watch-login
/>
099
</uses-policies>
100
</device-admin>
四、项目预览





请求权限界面





锁屏成功

五、附注

程序运行在android2.2以上平台(含2.2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: