0

カメラが開いているブロードキャストを受信したい。いくつかの条件が真の場合、そのプロセスをブロックしたい。

カメラが開かれているため、ブロードキャストを取得できません。(私が望んでいるものではない、撮影された新しい写真のブロードキャストを取得できます。)

これは私のマニフェスト ファイルの一部です。

<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つの答えは、

できません: インテントは、カメラ アプリ内のボタンではなく、ハードウェア カメラ ボタンによってのみ生成されます。

マニフェスト ファイルのインテント フィルターに何か問題がありますか? それとも、デバイスにハードウェア カメラ ボタンがないことが原因ですか?

4

1 に答える 1

4

カメラが開いているブロードキャストを受信したい。

そのような放送はありません。

いくつかの条件が真の場合、そのプロセスをブロックしたい。

カメラへのアクセスを制御するには、デバイス管理 API を使用してください。

これは私のマニフェスト ファイルの一部です

カメラアプリと関係がある場合とない場合があり、すべてのデバイスに存在するわけではありません。

しかし、カメラが開いているためのブロードキャストが得られません。

それは、そのような放送がないからです。

そして、この質問の 1 つの回答は、「できません。インテントは、カメラ アプリ内のボタンではなく、ハードウェア カメラ ボタンによってのみ生成されます」と述べています。

その答えは正しいです。

于 2012-11-19T11:33:45.670 に答える