<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      android 屏蔽指定activity啟動(程序鎖)

        某些安全管理類具有程序鎖功能,大致功能是這樣的:安全管理程序列出系統中的所有應用,用戶選定一些想鎖定的程序,并設置好密碼,這樣以后,再運行那些程序會跳轉到一個權限頁面,要求輸入密碼訪問,或者不訪問并推出。

        如何實現呢?

        第一個想法就是寫一個service監測activity 棧,如果棧頂有更改,則判斷其是否為受保護的程序,是,就intent轉向自己定義的認證授權activity;否,則什么都不做。

      找來找去,sdk沒有提供某個回調方法或事件、廣播之類的api,只能自己一直while中檢測。

        于是尋找第二種方法,在源碼中找所有service和aidl,也沒發現callback或者broadcast,activitymanager除了更改源碼,無法在外部讓它具有此類功能。

        native層?暫不考慮。

      現在把示例代碼寫出來,誰知道不用while的方式去檢測activity棧頂情況的方法,請告訴我,謝了。

      service 中的代碼:

      @Override
      public void onStart(Intent intent, int startId) {
      super.onStart(intent, startId);

      //我們將通過activity管理服務獲得當前activity棧的內容
      final ActivityManager am=(ActivityManager)getSystemService(ACTIVITY_SERVICE);

      //這個intent可以寫死,因為一直都是轉向這個
      final Intent mintent=new Intent();
      //flag必須是new task,仔細想想service與activity的區別就明白了。
      mintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

      //這個不用說了
      mintent.setClass(getApplicationContext(),LockActivity.class);

      //一個線程,讓我一直檢測
      AsyncTask taskWatcher=new AsyncTask() {

      @Override
      protected Object doInBackground(Object... params) {

      //把這個while當成看門狗吧。
      while(true){

      /**我們只需要獲得1個RunningTasks,一般情況下,會從棧頂按照傳入的個數來獲取
      一個集合,總有一個activity的,不會報空的請放心
      */
      String name=am.getRunningTasks(1).get(0).topActivity.getPackageName();

      /**判斷當前activity的包是否是屬于受保護的
      當然,實際情況下是讀取數據什么的,獲取一個集合
      這個集合通常是提前列出系統所有安裝的apk包,并讓用戶選擇所得到的
      */
      if(pakageName.equals(name)){

      /**轉向目標意圖,自己制定
      * 可以列個輸入框輸密碼什么的。
      *
      * 在目標activity,要屏蔽返回鍵,因為返回上一個task的棧頂,則
      * 又會返回到這里,寫代碼又要跑一邊,無意義,如果如輸入密碼對了
      * 則finish驗證activity,會自動返回到用戶期望的activity。
      *
      * 驗證的策略,與通過驗證的實效期,按照自己的需求來制定即刻
      */
      startActivity(mintent);
      }

      try {
      Thread.sleep(100);
      } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      }
      }
      };

      taskWatcher.execute(null);

      }

      僅當拋磚引玉,如有不對,望請指正。

      posted on 2011-09-29 23:00  黑暗伯爵  閱讀(7826)  評論(3)    收藏  舉報

      導航

      主站蜘蛛池模板: 福利视频一区二区在线| 深夜av免费在线观看| 亚洲色成人网站www永久四虎| 国产片av在线观看国语| 少妇被粗大的猛烈进出动视频| 怀柔区| 亚洲欧洲一区二区三区久久| 国产一区二区不卡在线| 扒开双腿疯狂进出爽爽爽| 无码人妻精品一区二区三区蜜桃| 日韩一区二区三区精彩视频| 99在线精品视频观看免费| 精品国产一区二区色老头| 亚洲欧美日韩在线码| 日本免费视频| 四房播色综合久久婷婷 | 亚洲av日韩av综合在线观看| 国产96在线 | 亚洲| 成人午夜av在线播放| 日韩在线观看中文字幕| gogogo高清在线播放免费| 亚洲线精品一区二区三八戒| 亚洲精品成人片在线观看精品字幕 | 国产午夜精品亚洲精品国产| 午夜DY888国产精品影院| 亚洲精品国产av成拍色拍个| 精品人妻一区二区三区蜜臀| 九九热视频免费在线播放| 四川少妇被弄到高潮| 亚洲天堂成人黄色在线播放| 亚洲图片自拍偷图区| 中超| 最新精品露脸国产在线| 老司机久久99久久精品播放免费| 亚洲人成人网站色www| 91亚洲一线产区二线产区| 亚洲精品日韩中文字幕| 亚洲天堂网中文在线资源| 成年在线观看免费人视频| 亚洲中文字幕国产综合| 国产一区二区三区不卡视频|