我正在开发一个Android应用程序,每次使用手机拍摄新图像时都需要执行操作。我不想在我的应用程序中拍摄图像,而是在Camera应用程序拍摄图像并将其保存到SD卡时执行某些操作。现在,我已经实现了一个正在侦听“android.intent.action.CAMERA_BUTTON”的BroadcastReceiver。但是,当我想要它时,似乎没有被调用。我试图在我自己的手机上使用BroadcastReceiver的OnReceive方法的第一行上的换行调试应用程序,但它从未达到该代码。
有谁知道我应该听的正确意图是什么?或者使用BroadcastReceiver甚至不是最好的方法吗? (例如,有没有更好的方法来实现这一点,例如在将新图像保存到卡片时进行监听)?
谢谢!
更新:我的手机上有一个轨迹球(HTC Eris),那么以这种方式拍摄照片是不是可以作为“相机按钮”发送?如果是这样,是否有一个没有“相机按钮”的手机的解决方法,而是像轨迹球一样?
答案 0 :(得分:7)
现在,我已经实现了一个正在侦听“android.intent.action.CAMERA_BUTTON”的BroadcastReceiver。但是,当我想要它时,似乎没有被调用。
只有在前台活动不消耗该事件时才会广播。
答案 1 :(得分:3)
相当古老的问题,如果有人仍然需要解决方案,请尝试使用
android.hardware.action.NEW_PICTURE
作为您的意图过滤器
<!-- Receiver for camera clicks -->
<receiver
android:name=".receivers.CameraEventReceiver"
android:label="CameraEventReceiver">
<intent-filter>
<!-- <action android:name="com.android.camera.NEW_PICTURE" /> -->
<action android:name="android.hardware.action.NEW_PICTURE" />
<data android:mimeType="image/*" />
</intent-filter>
</receiver>
它将返回其onReceive()函数的intent.getData()中的图像的Uri
希望有所帮助
答案 2 :(得分:0)
尝试这个适用于我的
<receiver android:name=".pictureReceiver" >
<intent-filter android:priority="10000" >
<action android:name="android.intent.action.CAMERA_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>