1. 程式人生 > >Android App中遮蔽(攔截)Home按鍵及其他按鍵

Android App中遮蔽(攔截)Home按鍵及其他按鍵

正文

[Descipton]

如何在 App 層攔截(遮蔽) Home按鍵和其他按鍵,做一些特殊處理。(此方法不能遮蔽Power Key)
[Solution]

編寫一個Acitivity,如下所示:
關鍵點1:遮蔽HOME按鍵,在onAttachedToWindow中設定FLAG_HOMEKEY_DISPATCHED
關鍵點2:遮蔽除Power , Home外的按鍵,覆蓋dispatchKeyEvent方法,並返回為true

public class LockByKeyGuard extends Activity {
       @Override
       public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
       }
       @Override
       public void onAttachedToWindow() {
       //關鍵:在onAttachedToWindow中設定FLAG_HOMEKEY_DISPATCHED
              this.getWindow().addFlags(WindowManager.LayoutParams. FLAG_HOMEKEY_DISPATCHED);
              super.onAttachedToWindow();
       }
       @Override
       public boolean dispatchKeyEvent(KeyEvent event) {
              // 返回true,不響應其他key
              return true;
       }


相關推薦

Android App遮蔽攔截Home按鍵及其按鍵

正文 [Descipton] 如何在 App 層攔截(遮蔽) Home按鍵和其他按鍵,做一些特殊處理。(此方法不能遮蔽Power Key) [Solution] 編寫一個Acitivity,如下所示: 關鍵點1:遮蔽HOME按鍵,在onAttachedToWindow中

編譯FFmpeg4.0.1並移植到Android app使用最詳細的FFmpeg-Android編譯教程

1.搭建編譯環境 1.安裝ubuntu14.04,安裝完成後執行以下命令 apt-get update apt-get install yasm apt-get install pkg-config 2.下載ndk 我用的是ndk r14b,附上下載地址:https://dl

Android APP啟動介面動畫

首先定義基類BaseActivity public abstract class BaseActivity extends AppCompatActivity { 實現類SplashActivity public class SplashActiv

Android開發資料庫sqlite的檢視及一些問題的解決方法

最近在學習Android中的Sqlite遇到一些問題,這裡做一下總結。 一、建立資料庫 首先你要新建一個使用Sqlite的APP,開發工具Ecplise、AndroidStudio都可,這裡以後者AS為例。如果你沒有現成的程式,可以用博主的這個、 檔名

Android程序守護,讓APP在系統記憶體常駐

       其實我們開發者並不想讓自己做的應用變成流氓軟體,但是沒辦法, 你的老闆需要,你要不想讓你的應用常駐,那咱就常駐不了了。。。所以說,言歸正傳。。。       第一篇準備使用系統的服務保活。如果想看提高app的程序等級來實現應用保活,可以直接進行點選Androi

Android程序守護,讓APP在系統記憶體常駐

      昨天晚上寫了用系統服務等方法來實現應用保活。今天寫一下用提高app的程序等級來實現應用保活。想看直接呼叫系統方法保活應用的可以點選Android程序守護,讓APP在系統記憶體中常駐(一)進行跳轉。       一:第一種實現思路,建立廣播接收者來監聽系統關屏亮屏

Android APP跳轉至微信,分享圖文給好友或者朋友圈加跳轉QQ好友或QQ群

/**      * 分享圖片給好友      *      * @param file      */ private void shareToFriend(File file) {     Intent intent = new Intent();     ComponentName comp = new

備忘Android app呼叫啟動其他應用系統應用和第三方應用

一、開啟第三方應用 方法一 Intent intent=new Intent(); //包名 包名+類名(全路徑) intent.setClassName("com.linxcool", "com.linxcool.PlaneAct

Pro Android學習筆記 ActionBar1Home圖標區

ces tom 新的 方便 find rac vertica lba manifest ?? Pro Android學習筆記(四八):ActionBar(1):Home圖標區 2013年03月10日 ? 綜合 ? 共 3256字 ? 字號 小 中 大 ? 評論關閉

Android TV開發總結構建一個TV app的焦點控制及遇到的坑

uio pow enter amp 鏈接 sheet 是否 base 用戶 原文:Android TV開發總結(三)構建一個TV app的焦點控制及遇到的坑 版權聲明:我已委托“維權騎士”(rightknights.com)為我的文章進行維權

Android TV開發總結構建一個TV app前要知道的事兒

進入 line 指南 col 遠程 引導 允許 方法 imp 原文:Android TV開發總結(一)構建一個TV app前要知道的事兒 版權聲明:我已委托“維權騎士”(rightknights.com)為我的文章進行維權行動.轉載務必轉載所

Qt入門 QtAndroid環境的設定

前言 Qt的優越性在於其是一個跨平臺的C++圖形使用者介面應用程式開發框架。 當你在電腦上寫了一個小demo,然後想在你的Android手機上釋出,這個時候,你需要使用Qt編譯出安卓應用程式。 關於過程,你可以看本篇文章。 安裝JDK:編譯Android程式必需的Java開發

Android之測量APP效能概覽

如果應用程式響應緩慢、顯示不穩定的動畫、凍結、崩潰或消耗大量電力,則認為其效能很差。為了避免這些效能問題,使用本頁中列出的分析工具來識別應用程式在哪裡低效使用資源,例如CPU、記憶體、圖形、網路和裝置電池。 Note: While profiling an app, you shoul

spring過濾器filter攔截interceptor和切面aop的執行順序

1.程式執行的順序是先進過濾器,再進攔截器,最後進切面。注意:如果攔截器中preHandle方法返回的為false時,則無法進入切面,例子如下 @RestController @RequestMapping("/user") public class UserController {

SpringMVC攔截器:解決專案介面url訪問許可權的問題通過url不能隨意訪問controller層

層次關係 攔截器實現HandlerInterceptor介面 package com.bybo.aca.web.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http

Android和IOS移動客戶端原生APP開發工程師外包

如題。 由於公司現有人員配備不足,因專案擱淺,現急需移動客戶端前端開發工程師,與專案經理(後端工程師)對接,共同開發商城APP專案。 專案要求: 1、熟悉Android系統的客戶端開發及運用,能獨立完成專案的前端技術開發(後端介面由公司提供);

sdk manager閃退因為在Android Studio更新sdk後

網上的find_java.bat等懷疑JAVA路徑,測試後發現自己的路徑沒有問題。 原因:AndroidStudio中操作sdk manager,對SDK資料夾中的tools檔案進行了重新的整理分化,導致tools資料夾中的檔案不完整導致。 解決方案: 找到以

android app版本升級DownloadManager、適配6.0、7.0

說明: 1.本文使用系統DownloadManager在通知欄更新下載進度  2.動態許可權使用第三方庫EasyPermissions(https://github.com/googlesamples/easypermissions)  3.下載完成的App安裝適配7.0 

Android的事件分發dispatchTouchEvent攔截onInterceptTouchEvent與處理onTouchEvent

在Android中,View的結構是樹狀的,所以,當觸發觸控事件的時候,其事件傳遞也是從上之下一層層的傳遞。下面我們結合例子來一點點進行分析。 首先,我們需要了解事件處理中的幾個方法: 1、在ViewGroup中,事件分為dispatchTouchEvent(事件的分發)

Android Studio專案打包常見錯誤:Execution failed for task ':app:mergeReleaseResources'等等

    Generate Signed APK: Errors while building APK. You can find the errors in the 'Messages' view. 錯誤1: AAPT: libpng error: Not