為了安全——應(yīng)用鎖屏開(kāi)發(fā)實(shí)戰(zhàn)

今天我們來(lái)談一個(gè)問(wèn)題:應(yīng)用鎖屏。
說(shuō)老實(shí)話,這種設(shè)定目前已經(jīng)被廣泛使用了,多見(jiàn)于支付寶、京東金融、QQ等對(duì)安全性和隱私性要求較高的程序使用。
關(guān)于該功能的實(shí)現(xiàn),有不止一條解決辦法。這里就不一一列舉了,只對(duì)其中一種做詳細(xì)解釋和示例程序的代碼分享。
這里我聲明一下,好像自從寫(xiě)博客到現(xiàn)在,我一直都在用Android Studio為IDE來(lái)開(kāi)發(fā),強(qiáng)烈建議還在使用Eclipse的小伙伴盡快使用它。盡管一上來(lái)可能有些許不便,但是上手之后效率會(huì)有所提高,不信就去試試!
本文介紹的方法解決思路如下:

  1. 監(jiān)聽(tīng)屏幕變化,即關(guān)閉和打開(kāi)屏幕;
  2. 設(shè)置需要出現(xiàn)鎖屏的標(biāo)志變量,默認(rèn)值為false。當(dāng)接收到屏幕被關(guān)閉的廣播后,將其置為true。
  3. 在Activity生命周期onResume中,檢測(cè)上述變量值,若為true,則啟動(dòng)安全校驗(yàn)機(jī)制,反之無(wú)操作。

Demo代碼中包含的鎖屏機(jī)制提供了多種選項(xiàng),可自由組合實(shí)現(xiàn)不同的應(yīng)用解鎖效果。

步驟1 設(shè)置監(jiān)聽(tīng)器

首先我們寫(xiě)一個(gè)類(lèi),集成BroadcastReceiver,用來(lái)接收系統(tǒng)Screen off的Action。這里我才用了Java代碼中動(dòng)態(tài)注冊(cè)監(jiān)聽(tīng)器的方法,而非xml配置文件,因?yàn)檫@樣可以更方便的讓我們對(duì)監(jiān)聽(tīng)使能進(jìn)行控制。由于監(jiān)聽(tīng)器需要在代碼中進(jìn)行實(shí)例化,因此我們可以在監(jiān)聽(tīng)器相關(guān)類(lèi)中定義布爾變量,來(lái)標(biāo)識(shí)是否有了關(guān)閉屏幕的操作。代碼片段如下所示:

public class LockScreenReceiver extends BroadcastReceiver {

    private boolean isNeedCheck;

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        //關(guān)閉屏幕
        isNeedCheck = true;
        }
    }

    public void unRegist() {
        isNeedCheck = false;
    }

    public boolean isNeedCheck() {
        return isNeedCheck;
    }
}

步驟2 動(dòng)態(tài)注冊(cè)監(jiān)聽(tīng)器

這一步驟要求我們對(duì)監(jiān)聽(tīng)器進(jìn)行動(dòng)態(tài)注冊(cè),所謂動(dòng)態(tài)注冊(cè)就是綁定到指定的控件上,由用戶(hù)自由選擇,進(jìn)行注冊(cè)和取消注冊(cè)。
具體代碼見(jiàn)Demo。下面放上Github地址:
https://github.com/XiaoWenHan/Demo_SafeScreen

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,304評(píng)論 4 61
  • 紅葉秋風(fēng)斜雨, 農(nóng)家阡陌魚(yú)池, 行人斷路酒家。 日落觀潮, 鴛鴦同棲垂柳。
    迦夜詩(shī)人閱讀 205評(píng)論 0 0
  • 【網(wǎng)站制作】 《簡(jiǎn)介》網(wǎng)站就是由多個(gè)網(wǎng)頁(yè)聯(lián)系在一起構(gòu)建出來(lái)的一個(gè)整體站。網(wǎng)頁(yè)的標(biāo)準(zhǔn)定義:網(wǎng)頁(yè)就是文字,圖片加超鏈接...
    黑色的夜閱讀 714評(píng)論 0 9
  • 發(fā)現(xiàn)和老公越來(lái)越不能溝通!不論是對(duì)孩子的教育問(wèn)題,和家人的溝通問(wèn)題,還是我們夫妻的交流問(wèn)題。
    榆木清清閱讀 232評(píng)論 0 0

友情鏈接更多精彩內(nèi)容