カメラが開いているブロードキャストを受信したい。いくつかの条件が真の場合、そのプロセスをブロックしたい。
カメラが開かれているため、ブロードキャストを取得できません。(私が望んでいるものではない、撮影された新しい写真のブロードキャストを取得できます。)
これは私のマニフェスト ファイルの一部です。
<receiver
android:name=".HardwareActionListener"
android:enabled="true"
android:exported="true" >
<intent-filter android:priority="1000" >
<action android:name="android.intent.action.CAMERA_BUTTON" >
</action>
</intent-filter>
</receiver>
これは私のファイル HardwareActionListener.java の一部です
System.out.println("Intent action: " + intent.getAction());
if (intent.getAction().equalsIgnoreCase(
"android.intent.action.CAMERA_BUTTON")) {
System.out.println("CAMERA Button broadcast received and aborted");
if(some_condition_true)
abortBroadcast();
}
私は一日中これをGoogleとstackverflowで検索しました。そして、あらゆる組み合わせを試しました。しかし、カメラが開いているためのブロードキャストが得られません。
テストにはSamsung Galaxyタブを使用しています。ハードウェアのカメラボタンがありません。
そして、この質問の1つの答えは、
できません: インテントは、カメラ アプリ内のボタンではなく、ハードウェア カメラ ボタンによってのみ生成されます。
マニフェスト ファイルのインテント フィルターに何か問題がありますか? それとも、デバイスにハードウェア カメラ ボタンがないことが原因ですか?