2017-06-17 19 views
-5

讓我首先澄清這一點,這與詢問我是否可以讓自己的相機應用程序捕獲和處理但我想要的圖像。 我想要的是設計一個應用程序,無論何時我的android手機的相機(使用任何應用程序,工廠或其他)捕獲圖像時,都會在後臺啓動應用程序,以便我可以處理該圖像並隨時保存它。有沒有一種方法可以在任何相機應用程序捕獲圖像時在android中啓動自定義應用程序

是否有可能沒有潛入根級編程?

回答

-1

也許可以通過小心使用Broadcast Receivers來實現相機捕捉圖像的事件。雖然我以前沒有實現過,但工作似乎是合理的。它有以下三種以下步驟 -

1.廣播接收機的創作

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.清單文件註冊接收

在清單文件<application>標籤把這個意圖接收器。 action這裏定義了你希望你的接收器被激活/收聽的動作。對於相機按鈕事件actionandroid.intent.action.CAMERA_BUTTON

<receiver android:name=".MyReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.CAMERA_BUTTON" /> 
      </intent-filter> 
</receiver> 

3.註冊接收機中的活動

IntentFilter filter = new IntentFilter(); 
intentFilter.addAction(getPackageName() + "android.intent.action.CAMERA_BUTTON"); 

MyReceiver myReceiver = new MyReceiver(); 
registerReceiver(myReceiver, filter); 

要註銷中的onStop()或的onPause()的接收器的活動的下面可以使用 -

@Override 
protected void onPause() { 
    unregisterReceiver(myReceiver); 
    super.onPause(); 
} 

我希望這應該工作正常。如果沒有,請讓我知道您面臨的問題。

+0

這是一個意圖啓動媒體捕獲。它不是在拍攝照片時發送的廣播。 –

+0

@GabeSechan編輯。希望這是正確的。 –

+0

我並不完全確定,但我認爲這只是指一個硬件攝像頭按鈕。但我今晚沒有時間檢查。 –

相關問題