创建Android应用以响应特定硬件输入

时间:2012-05-06 13:01:54

标签: android android-hardware

我是Android的新手,我正在尝试创建一个响应硬件输入的应用程序,如相机按钮,免提通话应答按钮等。

例如拍摄相机按钮。按下时,将启动默认的相机应用程序。我想要做的是阻止默认响应并让我的应用程序响应。我知道有可能更换相机应用程序,但这不是我所期望的。

当按下按钮时,我的应用程序应首先运行,我的应用程序将在我的应用程序完成后直接进入相机应用程序。如果可以,请指出正确的方向

2 个答案:

答案 0 :(得分:2)

目前,ACTION_CAMERA_BUTTON是有序广播。您可以创建具有更高优先级的<intent-filter>以尝试在固件自己的相机应用程序之前获得控制权,执行您想要执行的操作,并调用abortBroadcast()以防止优先级较低的过滤器接收此广播。

然而:

  • 您无法在编译时知道固件中相机应用程序的优先级,或用户可能已安装的任何其他相机应用程序。

  • ACTION_CAMERA_BUTTON未被记录为有序广播。因此,Android的旧版本可能没有订购,Android的未来版本可能没有订购,设备制造商不一定要保持订购。

  • 很少有设备有CAMERA按钮

答案 1 :(得分:0)

当用户按下相机按钮时(例如,如果手机有这样的按钮,大部分都没有!),用户可以决定该怎么做。默认情况下,它会打开相机应用程序,但听起来你已经知道了这一点以及如何注册活动以接收这些事件(意图)。

这将使用户选择在按下该按钮时使用哪个应用程序(或更确切地说是Activity)。如果用户想要他可以在列表中选择您现在将弹出的活动(因为现在有两种选择如何处理相机按钮按下)。他/她还可以选择始终使用列表中的一个选项。因此,如果您的应用程序是用户想要的,则可以选择该应用程序,并且如果他/她在按下按钮时总是想要您的应用程序,则他/她也可以指定该应用程序。