我正在研究制作一个应用程序来阻止音量增大/减小按键的默认操作,并希望获得一些输入,看看我是否会浪费时间尝试。
这是设置:
我有三星 Galaxy S3。我喜欢听音乐。当手机被锁在口袋里时,我经常会无意中改变正在播放的音量。
起初我认为这很简单;测试了 onKeyDown() 方法的简单覆盖,用于检索音量键的整数值。很快我意识到只有在我不锁定手机并且只保持该应用程序打开的情况下,这才有效。
接下来我发现了一些关于服务的文章,但是我相信这也不能满足我的需求,因为它不是 Activity 的子集,因此没有实现 onKeyDown(); 除非我弄错了,否则唤醒锁实际上会唤醒和/或解锁手机吗?
我现在应该放弃,还是这实际上可以实现?
(实际上这必须是可能的,因为我不必为这个功能支付 3 英镑的应用程序费用。哈哈)
注意:运行 Android 的 4.2.1
新版本,而不是 Java。
史蒂夫。
编辑:只是一个想法,但是如果我将 Activity 扩展到我自己的类(并覆盖 onKeyDown),并在服务中将其实例化为静态实例,那么该自定义活动会在手机锁定时持续存在吗?
Edit2:我发现这篇建议使用 FLAG_SHOW_WHEN_LOCKED 的帖子。我回家后会开始看这个,但我仍然愿意接受建议和建议:D
编辑 3:
好的,如果我开始失去这里的情节,请告诉我......
使用广播接收器,我将监听 ACTION_SCREEN_OFF 标志。如果调用它,请创建我的自定义活动(使用 onKeyDown() 覆盖)并将其设置为 FLAG_SHOW_WHEN_LOCKED 以接管我的锁定屏幕(我不在乎,因为屏幕已关闭)。然后接收器监听 ACTION_SCREEN_OFF,如果被调用,它将在显示屏幕之前销毁 Activity(或者之后,如果它闪烁,我不会打扰)。(甚至可能只是暂停它,并且只有在检测到解锁时才将其杀死)。
还要非常感谢@StoneBird 让我走到这一步,有时与知道那里在谈论什么的人讨论一下会有所帮助(希望^_-)。