Android - 锁定时阻止硬件按钮

时间:2013-04-24 21:14:48

标签: android samsung-mobile

我正在考虑制作一个应用程序来阻止按下音量增大/减小按键的默认操作,并希望得到一些输入,看看我是否在浪费我的时间。

以下是设置:

我有三星Galaxy S3。我喜欢听音乐。我经常无意中改变手机锁定和放在口袋里时的播放量。

起初我觉得这很简单;测试了onKeyDown()方法的简单覆盖,以检索卷键的整数值。很快我意识到这只有在我不能锁定手机并且仅保持该应用程序打开时才有效。

接下来我发现了一些关于服务的文章,但是我认为这也不符合我的需求,因为它不是Activity的子集,所以没有实现onKeyDown();除非我弄错了,唤醒锁实际上会唤醒和/或解锁手机?

我现在应该放弃,还是实际上可以实现? (实际上它必须是可能的,因为这一点的全部意义在于我不需要为这个功能支付3英镑的应用程序。大声笑)

注意:运行4.2.1
Android新手,但不适用于Java。

史蒂夫。

编辑:只是一个想法,但如果我将Activity扩展到我自己的类(并覆盖onKeyDown),并在服务中将其实例化为静态实例,那么自定义活动是否会在手机中保留被锁了?

编辑2:我发现this SO post建议使用FLAG_SHOW_WHEN_LOCKED。我回家后会开始看这个,但我仍然愿意接受建议和建议:D

编辑3: 好的,告诉我,如果我开始失去这里的阴谋...... 使用广播接收器,我将侦听ACTION_SCREEN_OFF标志。如果调用它,请创建我的自定义Activity(使用onKeyDown()覆盖)并将其设置为FLAG_SHOW_WHEN_LOCKED以接管我的锁定屏幕(我不关心,因为屏幕已关闭)。然后接收器侦听ACTION_SCREEN_OFF,如果被调用,它将在显示屏幕之前销毁Activity(或之后,如果它闪烁,我不会感到烦恼)。 (可能甚至只是暂停它,并且只有在检测到解锁时才会杀死它)。

同样非常感谢@StoneBird让我走到这一步,有时候与知道谈论内容的人(希望是^ _-)一起讨论它会有所帮助。

1 个答案:

答案 0 :(得分:0)

试试这个?

Settings.System

您可以启动服务并设置系统音量,例如每1毫秒,以使其保持稳定水平。不需要进行密钥检查,因为每隔1 ms就会覆盖一次。

此外,市场上还有免费的电量管理员,因此您无需为此付费。