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