2017-06-17 2 views
-5

これを明確にしておきます。これは、自分のカメラアプリケーションをキャプチャして処理できるかどうかを尋ねるのと似ていません。しかし、イメージがほしいです。 私が望むのは、イメージが自分のAndroid携帯電話のカメラ(アプリケーション、工場などを問わず)でキャプチャされるたびにバックグラウンドで起動されるアプリケーションを考案して、そのイメージを処理して必要に応じて保存できるようにすることです。カメラアプリケーションが画像をキャプチャするたびにアンドロイドでカスタムアプリケーションを起動する方法はありますか?

ルートレベルのプログラミングに入ることなく可能ですか?

答えて

-1

おそらく、カメラによる画像キャプチャイベントの場合は、慎重に使用して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ここでは、あなたのレシーバをどのような動作にするかを定義します。カメラボタンイベントactionandroid.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); 

アクティビティに受信機を登録します

これはうまくいくはずです。そうでない場合、あなたが直面している問題を教えてください。

+0

これは、メディアキャプチャを開始する意図です。写真を撮ったときに送信される放送ではありません。 –

+0

@GabeSechan私は編集しました。これが正しいことを願っています。 –

+0

私は絶対に確信しているわけではありませんが、ハードウェアのカメラボタンだけを指していると思います。しかし、私は今夜チェックする時間がありません。 –

関連する問題