質問

私は、電話で新しい画像が撮影されるたびにアクションを実行する必要があるAndroidアプリケーションに取り組んでいます。アプリケーション内で画像を撮りたくはありませんが、カメラアプリが画像を撮影してSDカードに保存したときにアクションを実行します。現在、「Android.intent.action.camera_button」を聴いているBroadcastReceiverの実装を手に入れました。しかし、これは私がそれを望んでいるときに呼ばれないようです。 BroadCastReceiverのOnReceiveメソッドの最初の行にラインブレイクを使用して、自分の携帯電話でアプリケーションをデバッグしようとしましたが、そのコードに到達することはありませんでした。

私が聞いているべき正しい意図が何であるかを知っている人はいますか?それとも、BroadcastReceiverを使用してこれを行うための最良の方法でさえありませんか? (たとえば、新しい画像がカードに保存されたときに聞くなど、これを達成するためのより良い方法はありますか)?

ありがとう!

アップデート: 私は自分の携帯電話(HTC eris)にトラックボールを持っているので、そのように写真を撮ることは「カメラボタン」として送信されない可能性がありますか?もしそうなら、「カメラボタン」のない電話の回避策はありますか?

役に立ちましたか?

解決

現在、「Android.intent.action.camera_button」を聴いているBroadcastReceiverの実装を手に入れました。しかし、これは私がそれを望んでいるときに呼ばれないようです。

前景の活動がイベントを消費しない場合にのみ放送されます。

他のヒント

かなり古い質問、誰かがまだ解決策を必要としている場合は、使用してみてください

android.hardware.action.new_picture

意図フィルターとして

<!-- Receiver for camera clicks -->
    <receiver
        android:name=".receivers.CameraEventReceiver"
        android:label="CameraEventReceiver">
        <intent-filter>

            <!-- <action android:name="com.android.camera.NEW_PICTURE" /> -->
            <action android:name="android.hardware.action.NEW_PICTURE" />

            <data android:mimeType="image/*" />
        </intent-filter>
    </receiver>

onreceive()関数のIntent.getData()で画像のURIを返します

それが役に立てば幸い

これを試してみてくださいこれは私のために機能します

<receiver android:name=".pictureReceiver" >
        <intent-filter android:priority="10000" >
            <action android:name="android.intent.action.CAMERA_BUTTON" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</receiver>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top