Android利用手勢(shì)完成屏幕密碼鎖功能
本文實(shí)例為大家分享了Android畫(huà)筆屏幕鎖小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
1.如果使用GestureOverlayView,在xml配置文件中使用Android.gesture.GestureOverlayView,否則會(huì)報(bào)ClassNotFoundException
2.關(guān)于判斷MEDIA_MOUNTED,API的解釋?zhuān)篻etExternalStorageState() returns MEDIA_MOUNTED if the media ispresent and mounted at its mount point with read/write access.
3.使用了service和broadcastReciever進(jìn)行監(jiān)聽(tīng),監(jiān)測(cè)到屏幕亮暗進(jìn)行程序啟動(dòng),參考了文章:
4.關(guān)于android.intent.action.MAIN
決定應(yīng)用程序最先啟動(dòng)的Activity
android.intent.category.LAUNCHER
決定應(yīng)用程序是否顯示在程序列表里
5.關(guān)于R.id的問(wèn)題,將要import類(lèi)R所在的包
6.利用了Android SDK范例開(kāi)發(fā)中的GestureOverlayView進(jìn)行開(kāi)發(fā)畫(huà)圖工具
7.實(shí)現(xiàn)了在service中啟動(dòng)activity
Intent i = new Intent(UpdateService.this,Lock.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity(i);
8. 隱藏界面
this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); Don't call setContentView() before requestFeature().
9.全屏并屏蔽HOME鍵,以及屏蔽返回鍵,完成辦法。
public booleanonKeyDown(int keyCode,KeyEvent event){
switch(keyCode){
caseKeyEvent.KEYCODE_HOME:return true;
caseKeyEvent.KEYCODE_BACK:return true;
caseKeyEvent.KEYCODE_CALL:return true;
caseKeyEvent.KEYCODE_SYM: return true;
caseKeyEvent.KEYCODE_VOLUME_DOWN: return true;
caseKeyEvent.KEYCODE_VOLUME_UP: return true;
caseKeyEvent.KEYCODE_STAR: return true;
}
returnsuper.onKeyDown(keyCode, event);
}
屏蔽home鍵的代碼:
public voidonAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
出現(xiàn)問(wèn)題:WindowManager.LayoutParams.TYPE_KEYGUARD以及LayoutParams.FLAG_FULLSCREEN出現(xiàn)沖突,無(wú)法解決,搜索網(wǎng)上無(wú)解決辦法。
參考文檔:
\frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java1089行
if (code ==KeyEvent.KEYCODE_HOME) {
// If a system window has focus,then it doesn't make sense
// right now to interact withapplications.
WindowManager.LayoutParams attrs =win != null ? win.getAttrs() : null;
if (attrs != null) {
final int type = attrs.type;
if (type ==WindowManager.LayoutParams.TYPE_KEYGUARD
|| type ==WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG) {
// the "app" iskeyguard, so give it the key
return false;
}
final int typeCount =WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;
for (int i=0; i<typeCount;i++) {
if (type ==WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {
// don't do anything,but also don't pass it to the app
return true;
}
}
}
因此解決問(wèn)題!
10.出現(xiàn)了返回HOME頁(yè)后重新從程序頁(yè)進(jìn)入,發(fā)現(xiàn)又進(jìn)入開(kāi)鎖界面:
經(jīng)過(guò)查詢(xún)思考,發(fā)現(xiàn),其實(shí)是HOME頁(yè)后將程序放入處理?xiàng).?dāng)中,所以重新進(jìn)入時(shí)就會(huì)繼續(xù)回到棧頂,并且破壞了全屏效果。
因此必須實(shí)現(xiàn)返回鍵功能,而不是HOME鍵。
因此,使用finish();方法就足夠了,狗日的SDK開(kāi)發(fā),竟然寫(xiě)了一個(gè)外部監(jiān)聽(tīng),不能使用finish方法,后來(lái)改寫(xiě)成內(nèi)部類(lèi),直接搞定。
根據(jù)個(gè)人感覺(jué),其實(shí)監(jiān)聽(tīng)寫(xiě)內(nèi)部類(lèi)還是比較保險(xiǎn)的,開(kāi)發(fā)初級(jí)階段,慢慢摸索。
newGestureOverlayView.OnGesturePerformedListener()
最后,上效果圖,4天的結(jié)果,還不錯(cuò)。起碼解決了全屏顯示和屏蔽HOME鍵的問(wèn)題。
PS:將會(huì)對(duì)來(lái)電開(kāi)鎖功能進(jìn)行更新
上圖:



更多內(nèi)容請(qǐng)參考專(zhuān)題:Android密碼使用教程
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android計(jì)算器簡(jiǎn)單邏輯實(shí)現(xiàn)實(shí)例分享
這篇文章主要介紹了Android計(jì)算器簡(jiǎn)單邏輯實(shí)現(xiàn)實(shí)例,有需要的朋友可以參考一下2014-01-01
Android 網(wǎng)絡(luò)圖片查看顯示的實(shí)現(xiàn)方法
本篇文章小編為大家介紹,Android 網(wǎng)絡(luò)圖片查看顯示的實(shí)現(xiàn)方法,需要的朋友參考下2013-04-04
Android實(shí)現(xiàn)一周時(shí)間早中晚排班表
項(xiàng)目需求需要實(shí)現(xiàn)一個(gè)動(dòng)態(tài)添加,修改一周早中晚時(shí)間排班表,文章給大家提供了實(shí)現(xiàn)代碼,需要的朋友參考下吧2018-07-07
Android RichText 讓Textview輕松的支持富文本(圖像ImageSpan、點(diǎn)擊效果等等類(lèi)似QQ微信聊
AndroidRichText幫助實(shí)現(xiàn)像QQ,微信一樣的,一個(gè)TextView里既有文字又有表情又有圖片的效果,采用插件化的框架,代碼簡(jiǎn)單,可拓展性強(qiáng)2016-01-01
Android應(yīng)用中加入微信分享簡(jiǎn)單方法
這篇文章主要介紹了Android應(yīng)用中加入微信分享簡(jiǎn)單方法,本文用簡(jiǎn)潔明快的步驟講解了加入微信分享的方法,需要的朋友可以參考下2015-05-05
Android手勢(shì)密碼的實(shí)現(xiàn)
這篇文章主要介紹了Android手勢(shì)密碼的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-04-04
Android實(shí)現(xiàn)網(wǎng)頁(yè)圖片瀏覽功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)網(wǎng)頁(yè)圖片瀏覽功能,輸入圖片的url然后點(diǎn)擊按鈕加載出來(lái)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Android軟鍵盤(pán)狀態(tài)彈出與消失的示例
這篇文章主要介紹了本篇文章主要介紹了Android軟鍵盤(pán)狀態(tài)彈出與消失的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02

