广播接收器不会收到摄像机事件
我正在尝试创建一个可以检测用户何时拍照的应用。我设置了一个广播接收器类,并通过以下方式将其注册在清单文件中:
<receiver android:name="photoReceiver" >
<intent-filter>
<action android:name="com.android.camera.NEW_PICTURE"/>
<data android:mimeType="image/*"/>
</intent-filter>
</receiver>
无论我尝试做什么,该程序都不会收到广播。这是我的接收器类:
public class photoReceiver extends BroadcastReceiver {
private static final String TAG = "photoReceiver";
@Override
public void onReceive(Context context, Intent intent) {
CharSequence text = "caught it";
int duration = Toast.LENGTH_LONG;
Log.d(TAG, "Received new photo");
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
如果我删除清单和我的活动中的mimeType行,我会发送自己的广播
Intent intent = new Intent("com.android.camera.NEW_PICTURE");
sendBroadcast(intent);
然后我成功收到广播,可以看到日志和吐司窗口。我是以正确的方式接近这个吗?我需要添加什么东西吗?
没有找到相关结果
已邀请:
5 个回复
邵酮
bab
最后,您将从BroadcastReceiver创建一个名为“CameraReciver.java”的类 这是我的代码:
之后,将您的项目部署到Emulator(我使用genymotion),当然没有任何事情发生,因为您的BroadCastReceiver在没有GUI的情况下工作。让你打开相机应用程序,然后单击捕获按钮。如果一切正常,您将获得一个内容,如“新照片保存为:存储/模拟/ 0 / DCIM /相机/ IMG_20140308.jpg”。让我们享受^ _ ^ 感谢“tanay khandelwal”(上面回答)如何获取相机拍摄的新照片的路径^ _ ^ 我的英语语法不是很好,也许在某处错了,但我想你能理解我的意思(^ _^)。希望能帮助大家
了驳
的观察者会通知SD卡上发生的任何事情,然后在观察者中,他们检查返回的数据是否是照片。
至少这种方式你不必硬编码目录。
响摔衅幸
在Android Manifest中,您只需要获取一些权限并使用intent filter注册您的接收器,并且适当的图像捕获操作也会使您的接收器启用Android
艾食魄轻县