天天看点

Android一键锁屏开发全过程

一、项目简介:

项目:《android 一键锁屏》

开发周期:4天

代码量:100行

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

二、项目流程:

Android一键锁屏开发全过程

<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>&lt;?xml version=</code><code>"1.0"</code> <code>encoding=</code><code>"utf-8"</code><code>?&gt; </code>

<code>055</code>

<code>&lt;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>&gt; </code>

<code>059</code>

<code>    </code><code>&lt;application android:icon=</code><code>"@drawable/icon"</code> <code>android:label=</code><code>"@string/app_name"</code><code>&gt; </code>

<code>060</code>

<code>        </code><code>&lt;activity android:name=</code><code>".lockfirst"</code> 

<code>061</code>

<code>                  </code><code>android:label=</code><code>"@string/app_name"</code><code>&gt; </code>

<code>062</code>

<code>            </code><code>&lt;intent-filter&gt; </code>

<code>063</code>

<code>                </code><code>&lt;action android:name=</code><code>"android.intent.action.main"</code> <code>/&gt; </code>

<code>064</code>

<code>                </code><code>&lt;category android:name=</code><code>"android.intent.category.launcher"</code> <code>/&gt; </code>

<code>065</code>

<code>            </code><code>&lt;/intent-filter&gt; </code>

<code>066</code>

<code>        </code><code>&lt;/activity&gt; </code>

<code>067</code>

<code>        </code><code>&lt;!-- 设备管理 --&gt; </code>

<code>068</code>

<code>        </code><code>&lt;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>&gt; </code>

<code>072</code>

<code>                </code><code>&lt;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>/&gt; </code>

<code>074</code>

<code>                   </code><code>&lt;intent-filter&gt; </code>

<code>075</code>

<code>                        </code><code>&lt;action </code>

<code>076</code>

<code>                           </code><code>android:name=</code><code>"android.app.action.device_admin_enabled"</code> <code>/&gt; </code>

<code>077</code>

<code>                   </code><code>&lt;/intent-filter&gt; </code>

<code>078</code>

<code>        </code><code>&lt;/receiver&gt; </code>

<code>079</code>

<code>    </code><code>&lt;/application&gt; </code>

<code>080</code>

<code>081</code>

<code>082</code>

<code>&lt;/manifest&gt;  </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>&lt;?xml version=</code><code>"1.0"</code> <code>encoding=</code><code>"utf-8"</code><code>?&gt;  </code>

<code>086</code>

<code>&lt;device-admin </code>

<code>087</code>

<code>  </code><code>xmlns:android=</code><code>"http://schemas.android.com/apk/res/android"</code><code>&gt; </code>

<code>088</code>

<code>    </code><code>&lt;uses-policies&gt; </code>

<code>089</code>

<code>        </code><code>&lt;!-- 强行锁定  在里仅这个是需要的--&gt; </code>

<code>090</code>

<code>        </code><code>&lt;force-lock /&gt; </code>

<code>091</code>

<code>        </code><code>&lt;!-- 清除所有数据(恢复出厂设置) --&gt; </code>

<code>092</code>

<code>        </code><code>&lt;wipe-data /&gt; </code>

<code>093</code>

<code>         </code><code>&lt;!-- 重置密码 --&gt; </code>

<code>094</code>

<code>        </code><code>&lt;reset-password /&gt; </code>

<code>095</code>

<code>        </code><code>&lt;!-- 限制密码选择 --&gt; </code>

<code>096</code>

<code>         </code><code>&lt;limit-password /&gt; </code>

<code>097</code>

<code>         </code><code>&lt;!-- 监控登录尝试 --&gt; </code>

<code>098</code>

<code>          </code><code>&lt;watch-login /&gt; </code>

<code>099</code>

<code>    </code><code>&lt;/uses-policies&gt; </code>

<code>100</code>

<code>&lt;/device-admin&gt;</code>

四、项目预览

Android一键锁屏开发全过程

 请求权限界面

Android一键锁屏开发全过程

 锁屏成功

五、附注

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

下一篇: 决战Win 8

继续阅读