前提・実現したいこと
とあるアプリを製作中でアプリ起動中はHomeボタン及びTaskボタンを無効化したいです
↓
Home,TaskボタンでActivityを待機状態(onPause)したくない
Home,Taskで終了できないアプリはどうかという話もありますが何かありましたらお願いいたします。
そもそも無効化したい経緯
→ハンディ端末で行っているためすべての動作をキーイベントで解決したい。そのためHomeボタン及びTaskボタンを無効化したいという流れである。終了時は特定のボタンを押すことで終了する。
発生している問題・エラーメッセージ
Homeボタン及びTaskボタンを無効化できない
該当のソースコード
Java
1package com.handy.app.activity; 2 3import android.app.Activity; 4import android.content.Intent; 5import android.view.KeyEvent; 6 7public class MainActivity extends Activity { 8 /** 9 * 初期処理 10 * 11 * @param savedInstanceState 重要ではないため記載なし 12 */ 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 17 //画面タッチ無効化 18 getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 19 } 20 21 /** 22 * キーが離された際に動作する関数 23 * 24 * @param keyCode 離されたキーのコード 25 * @param event キーイベント 26 * @return 継承元のReturn 27 */ 28 @Override 29 public boolean onKeyUp(int keyCode, KeyEvent event) { 30 //ホームボタン押下時は無効する 31 if (KeyEvent.KEYCODE_HOME == keyCode) { 32 return true; 33 } 34 return super.onKeyUp(keyCode, event); 35 } 36 37 /** 38 * キーが押された際に動作する関数 39 * 40 * @param keyCode 離されたキーのコード 41 * @param event キーイベント 42 * @return 継承元のReturn 43 */ 44 @Override 45 public boolean onKeyDown(int keyCode, KeyEvent event) { 46 //ホームボタン押下時は無効する 47 if (KeyEvent.KEYCODE_HOME == keyCode) { 48 return true; 49 } 50 return super.onKeyDown(keyCode, event); 51 } 52}
試したこと
・KeyEventのonKeyDown,onKeyUp,dispatchKeyEventを使用したがイベントに引っかからない
↓
Home及びTaskボタンはAndroidの仕様で検知されないようになっている
・下記リンク先にてHomeボタンを検知するイベントがあったがAndroid5.0以降はなしになっている
StackOverFlow
補足情報(FW/ツールのバージョンなど)
Android11(ハンディ端末)
AndroidStudio
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。