小编Joh*_*ohn的帖子

广播接收器不会收到相机事件

我正在尝试创建一个可以检测用户何时拍照的应用.我设置了一个广播接收器类,并通过以下方式将其注册在清单文件中:

<receiver android:name="photoReceiver" >
  <intent-filter>
    <action android:name="com.android.camera.NEW_PICTURE"/>
      <data android:mimeType="image/*"/>
 </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

无论我尝试做什么,该程序都不会收到广播.这是我的接收器类:

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();
 }
}
Run Code Online (Sandbox Code Playgroud)

如果我删除清单和我的活动中的mimeType行,我会发送自己的广播

Intent intent = new Intent("com.android.camera.NEW_PICTURE");
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

然后我成功收到广播,可以看到日志和吐司窗口​​.我是以正确的方式接近这个吗?我需要添加什么东西吗?

android android-manifest android-camera android-camera-intent

20
推荐指数
4
解决办法
2万
查看次数