如何在睡眠模式下接收硬件密钥事件?

时间:2011-10-28 01:27:33

标签: android hardware key broadcastreceiver sleep

我正在编写一个应用程序,允许有危险的人拨打911。

这是它应该如何运作的:

  1. 他(或她)感到危险。
  2. 他按下音量降低键三次。
  3. 我的应用程序拨打911。
  4. 但是我遇到了以下问题:如何在睡眠模式中收到一个强硬的关键事件

    我搜索了谷歌和其他搜索引擎,但找不到任何相关内容。

2 个答案:

答案 0 :(得分:2)

public class YourBoardcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
                if (Intent.ACTION_CAMERA_BUTTON.equals(intent.getAction())) {
                        Intent main = new Intent();// 
                }
        }
}

在你的宣言中:

<receiver android:name="YourBoardcastReceiver">
                <intent-filter>
                        <action android:name="android.intent.action.SCREEN_ON" />
                </intent-filter>
</receiver>

答案 1 :(得分:1)

我认为你可以做到的唯一方法就是使用BroadcastReceiver,但是当屏幕关闭时,音量按钮似乎不会生成Intent(请参阅here)。您可以做的最接近的事情是使用相机按钮执行类似的操作。

不管怎么说,也许这种方式更好。我想如果他们的手机因为音量按钮或者相机按钮而在口袋里打电话给911时,会让用户感到烦恼。而且,这不是我期望发生的事情。