おそらく、カメラによる画像キャプチャイベントの場合は、慎重に使用してBroadcast Receivers
と実装することができます。私は前にこれを実装していませんが、うまくいくと思われます。これは3つの以下の手順が必要 - ブロードキャストレシーバー
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "image captured by camera", Toast.LENGTH_SHORT).show();
}
}
マニフェストファイルのレシーバーを登録する2.
の
1.創造<application>
タグの下では、マニフェストファイルで、この目的の受信機を置きます。 action
ここでは、あなたのレシーバをどのような動作にするかを定義します。カメラボタンイベントaction
はandroid.intent.action.CAMERA_BUTTON
です。
@Override
protected void onPause() {
unregisterReceiver(myReceiver);
super.onPause();
}
- <receiver android:name=".MyReceiver" >
<intent-filter>
<action android:name="android.intent.action.CAMERA_BUTTON" />
</intent-filter>
</receiver>
3.以下を使用することができる活性のonStop()またはonPause()内の受信機の登録を解除する
IntentFilter filter = new IntentFilter();
intentFilter.addAction(getPackageName() + "android.intent.action.CAMERA_BUTTON");
MyReceiver myReceiver = new MyReceiver();
registerReceiver(myReceiver, filter);
アクティビティに受信機を登録します
これはうまくいくはずです。そうでない場合、あなたが直面している問題を教えてください。
これは、メディアキャプチャを開始する意図です。写真を撮ったときに送信される放送ではありません。 –
@GabeSechan私は編集しました。これが正しいことを願っています。 –
私は絶対に確信しているわけではありませんが、ハードウェアのカメラボタンだけを指していると思います。しかし、私は今夜チェックする時間がありません。 –