我是Android的新手,我正在尝试创建一个响应硬件输入的应用程序,如相机按钮,免提通话应答按钮等。
例如拍摄相机按钮。按下时,将启动默认的相机应用程序。我想要做的是阻止默认响应并让我的应用程序响应。我知道有可能更换相机应用程序,但这不是我所期望的。
当按下按钮时,我的应用程序应首先运行,我的应用程序将在我的应用程序完成后直接进入相机应用程序。如果可以,请指出正确的方向
答案 0 :(得分:2)
目前,ACTION_CAMERA_BUTTON
是有序广播。您可以创建具有更高优先级的<intent-filter>
以尝试在固件自己的相机应用程序之前获得控制权,执行您想要执行的操作,并调用abortBroadcast()
以防止优先级较低的过滤器接收此广播。
然而:
您无法在编译时知道固件中相机应用程序的优先级,或用户可能已安装的任何其他相机应用程序。
ACTION_CAMERA_BUTTON
未被记录为有序广播。因此,Android的旧版本可能没有订购,Android的未来版本可能没有订购,设备制造商不一定要保持订购。
很少有设备有CAMERA按钮
答案 1 :(得分:0)
当用户按下相机按钮时(例如,如果手机有这样的按钮,大部分都没有!),用户可以决定该怎么做。默认情况下,它会打开相机应用程序,但听起来你已经知道了这一点以及如何注册活动以接收这些事件(意图)。
这将使用户选择在按下该按钮时使用哪个应用程序(或更确切地说是Activity)。如果用户想要他可以在列表中选择您现在将弹出的活动(因为现在有两种选择如何处理相机按钮按下)。他/她还可以选择始终使用列表中的一个选项。因此,如果您的应用程序是用户想要的,则可以选择该应用程序,并且如果他/她在按下按钮时总是想要您的应用程序,则他/她也可以指定该应用程序。