ユーザーが写真を撮ったことを検出するアプリを作成しようとしています。ブロードキャスト レシーバー クラスをセットアップし、次の方法でマニフェスト ファイルに登録しました。
<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);
その後、ブロードキャストを正常に受信し、ログとトースト ウィンドウを表示できます。私はこれに正しい方法で取り組んでいますか?追加する必要があるものはありますか?