我是靠谱客的博主 尊敬网络,这篇文章主要介绍安卓按键顺序检测触发隐藏入口的实现方式,现在分享给大家,希望可以做个参考。

需求场景:在AndroidTv上隐藏式调出不开放给用户的开发模式或者工厂模式。

思路:在设置或者特定的页面下,按指定顺序按下遥控按键触发。

封装类如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import android.util.Log; import android.view.KeyEvent; /*** * LankyBin 2022.08.19 * 隐藏入口 * 组合顺序按键调用隐藏动作 */ public class HiddenEntrance { private final String TAG = this.getClass().getSimpleName(); private final int[] mPassword; public HiddenEntrance(int[] password) { mPassword = password; } private OnPasswordCheckedListener mListener = new OnPasswordCheckedListener() { @Override public void onPasswordChecked(boolean passed) { Log.d(TAG, "onPasswordChecked: " + passed + " TO DO?"); } }; private int mPwdNo = 0; public boolean checkPassword(int keyCode) { boolean ret = false; if (keyCode == KeyEvent.KEYCODE_UNKNOWN) { return false; } if (keyCode == mPassword[mPwdNo]) { ++mPwdNo; } else { mPwdNo = 0; } if (mPwdNo == mPassword.length) { ret = true; mPwdNo = 0; } mListener.onPasswordChecked(ret); return ret; } public void setOnPasswordCheckedListener(OnPasswordCheckedListener listener) { mListener = listener; } public interface OnPasswordCheckedListener { void onPasswordChecked(boolean passed); } }

调用方式demo:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
private static final int[] PASSWORD = { KeyEvent.KEYCODE_DPAD_UP, KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_MENU, KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT }; private final HiddenEntrance mHiddenEntrance = new HiddenEntrance(PASSWORD); @Override protected void onResume() { mHiddenEntrance.setOnPasswordCheckedListener(new HiddenEntrance.OnPasswordCheckedListener() { @Override public void onPasswordChecked(boolean passed) { if (passed) { Log.d(TAG, "onPasswordChecked: todo"); //做你想做的事 } } }); super.onResume(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { mHiddenEntrance.checkPassword(keyCode); } return super.onKeyDown(keyCode, event); }

最后

以上就是尊敬网络最近收集整理的关于安卓按键顺序检测触发隐藏入口的实现方式的全部内容,更多相关安卓按键顺序检测触发隐藏入口内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部