一、项目简介:
项目:《android 一键锁屏》
开发周期:4天
代码量:100行
————————————————————————
二、项目流程:
<code>001</code>
<code>三、项目代码</code>
<code>002</code>
<code>1</code><code>、主程序代码:</code>
<code>003</code>
<code>java代码 </code>
<code>004</code>
<code>private</code> <code>devicepolicymanager policymanager; </code>
<code>005</code>
<code>private</code> <code>componentname componentname; </code>
<code>006</code>
<code> </code>
<code>007</code>
<code>@override</code>
<code>008</code>
<code>protected</code> <code>void</code> <code>oncreate(bundle savedinstancestate) { </code>
<code>009</code>
<code> </code><code>super</code><code>.oncreate(savedinstancestate); </code>
<code>010</code>
<code> </code><code>setcontentview(r.layout.locklayout); </code>
<code>011</code>
<code> </code>
<code>012</code>
<code> </code><code>//获取设备管理服务 </code>
<code>013</code>
<code> </code><code>policymanager = (devicepolicymanager) getsystemservice(context.device_policy_service); </code>
<code>014</code>
<code>015</code>
<code> </code><code>//adminreceiver 继承自 deviceadminreceiver </code>
<code>016</code>
<code> </code><code>componentname = </code><code>new</code> <code>componentname(</code><code>this</code><code>, adminreceiver.</code><code>class</code><code>); </code>
<code>017</code>
<code>018</code>
<code> </code><code>mylock(); </code>
<code>019</code>
<code> </code><code>// killmyself ,锁屏之后就立即kill掉我们的activity,避免资源的浪费; </code>
<code>020</code>
<code> </code><code>android.os.process.killprocess(android.os.process.mypid()); </code>
<code>021</code>
<code>022</code>
<code>} </code>
<code>023</code>
<code> </code>
<code>024</code>
<code>2</code><code>、其中,mylock()为:</code>
<code>025</code>
<code>026</code>
<code>private</code> <code>void</code> <code>mylock(){ </code>
<code>027</code>
<code> </code>
<code>028</code>
<code> </code><code>boolean</code> <code>active = policymanager.isadminactive(componentname); </code>
<code>029</code>
<code> </code><code>if</code><code>(!active){</code><code>//若无权限 </code>
<code>030</code>
<code> </code><code>activemanage();</code><code>//去获得权限 </code>
<code>031</code>
<code> </code><code>policymanager.locknow();</code><code>//并锁屏 </code>
<code>032</code>
<code> </code><code>} </code>
<code>033</code>
<code> </code><code>if</code> <code>(active) { </code>
<code>034</code>
<code> </code><code>policymanager.locknow();</code><code>//直接锁屏 </code>
<code>035</code>
<code>036</code>
<code>037</code>
<code> </code><code>3</code><code>、activemanage()代码为:</code>
<code>038</code>
<code>039</code>
<code>private</code> <code>void</code> <code>activemanage() { </code>
<code>040</code>
<code> </code><code>// 启动设备管理(隐式intent) - 在androidmanifest.xml中设定相应过滤器 </code>
<code>041</code>
<code> </code><code>intent intent = </code><code>new</code> <code>intent(devicepolicymanager.action_add_device_admin); </code>
<code>042</code>
<code>043</code>
<code> </code><code>//权限列表 </code>
<code>044</code>
<code> </code><code>intent.putextra(devicepolicymanager.extra_device_admin, componentname); </code>
<code>045</code>
<code>046</code>
<code> </code><code>//描述(additional explanation) </code>
<code>047</code>
<code> </code><code>intent.putextra(devicepolicymanager.extra_add_explanation, </code><code>"------ 其他描述 ------"</code><code>); </code>
<code>048</code>
<code>049</code>
<code> </code><code>startactivityforresult(intent, </code><code>0</code><code>); </code>
<code>050</code>
<code>051</code>
<code>052</code>
<code>4</code><code>、androidmanifest.xml</code>
<code>053</code>
<code>054</code>
<code><?xml version=</code><code>"1.0"</code> <code>encoding=</code><code>"utf-8"</code><code>?> </code>
<code>055</code>
<code><manifest xmlns:android=</code><code>"http://schemas.android.com/apk/res/android"</code>
<code>056</code>
<code> </code><code>package</code><code>=</code><code>"cn.hnu"</code>
<code>057</code>
<code> </code><code>android:versioncode=</code><code>"1"</code>
<code>058</code>
<code> </code><code>android:versionname=</code><code>"1.0"</code><code>> </code>
<code>059</code>
<code> </code><code><application android:icon=</code><code>"@drawable/icon"</code> <code>android:label=</code><code>"@string/app_name"</code><code>> </code>
<code>060</code>
<code> </code><code><activity android:name=</code><code>".lockfirst"</code>
<code>061</code>
<code> </code><code>android:label=</code><code>"@string/app_name"</code><code>> </code>
<code>062</code>
<code> </code><code><intent-filter> </code>
<code>063</code>
<code> </code><code><action android:name=</code><code>"android.intent.action.main"</code> <code>/> </code>
<code>064</code>
<code> </code><code><category android:name=</code><code>"android.intent.category.launcher"</code> <code>/> </code>
<code>065</code>
<code> </code><code></intent-filter> </code>
<code>066</code>
<code> </code><code></activity> </code>
<code>067</code>
<code> </code><code><!-- 设备管理 --> </code>
<code>068</code>
<code> </code><code><receiver android:name=</code><code>".adminreceiver"</code>
<code>069</code>
<code> </code><code>android:label=</code><code>"@string/app_name"</code>
<code>070</code>
<code> </code><code>android:description=</code><code>"@string/app_name"</code>
<code>071</code>
<code> </code><code>android:permission=</code><code>"android.permission.bind_device_admin"</code><code>> </code>
<code>072</code>
<code> </code><code><meta-data android:name=</code><code>"android.app.device_admin"</code>
<code>073</code>
<code> </code><code>android:resource=</code><code>"@xml/lock_screen"</code> <code>/> </code>
<code>074</code>
<code> </code><code><intent-filter> </code>
<code>075</code>
<code> </code><code><action </code>
<code>076</code>
<code> </code><code>android:name=</code><code>"android.app.action.device_admin_enabled"</code> <code>/> </code>
<code>077</code>
<code> </code><code></intent-filter> </code>
<code>078</code>
<code> </code><code></receiver> </code>
<code>079</code>
<code> </code><code></application> </code>
<code>080</code>
<code>081</code>
<code>082</code>
<code></manifest> </code>
<code>083</code>
<code> </code><code>5</code><code>、其中lock_screen.xml(lock_screen.xml文件放在res/xml文件夹下)代码为:</code>
<code>084</code>
<code>085</code>
<code><?xml version=</code><code>"1.0"</code> <code>encoding=</code><code>"utf-8"</code><code>?> </code>
<code>086</code>
<code><device-admin </code>
<code>087</code>
<code> </code><code>xmlns:android=</code><code>"http://schemas.android.com/apk/res/android"</code><code>> </code>
<code>088</code>
<code> </code><code><uses-policies> </code>
<code>089</code>
<code> </code><code><!-- 强行锁定 在里仅这个是需要的--> </code>
<code>090</code>
<code> </code><code><force-lock /> </code>
<code>091</code>
<code> </code><code><!-- 清除所有数据(恢复出厂设置) --> </code>
<code>092</code>
<code> </code><code><wipe-data /> </code>
<code>093</code>
<code> </code><code><!-- 重置密码 --> </code>
<code>094</code>
<code> </code><code><reset-password /> </code>
<code>095</code>
<code> </code><code><!-- 限制密码选择 --> </code>
<code>096</code>
<code> </code><code><limit-password /> </code>
<code>097</code>
<code> </code><code><!-- 监控登录尝试 --> </code>
<code>098</code>
<code> </code><code><watch-login /> </code>
<code>099</code>
<code> </code><code></uses-policies> </code>
<code>100</code>
<code></device-admin></code>
四、项目预览
请求权限界面
锁屏成功
五、附注
程序运行在android2.2以上平台(含2.2)