天天看點

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

繼續閱讀