Probably it can be implemented with the careful use Broadcast Receivers
for the event of image capture by camera. Though i haven't implemented this before but it seems reasonable to work. It involves three following steps --
1. Creation of Broadcast Receiver
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. Registering Receiver in manifest file
Under <application>
tag in manifest file put this intent receiver. action
here defines on what actions you want your receiver to be activated/ listen. For camera button event action
is android.intent.action.CAMERA_BUTTON
.
<receiver android:name=".MyReceiver" >
<intent-filter>
<action android:name="android.intent.action.CAMERA_BUTTON" />
</intent-filter>
</receiver>
3. Registering the receiver in your activity
IntentFilter filter = new IntentFilter();
intentFilter.addAction(getPackageName() + "android.intent.action.CAMERA_BUTTON");
MyReceiver myReceiver = new MyReceiver();
registerReceiver(myReceiver, filter);
To unregister a receiver in onStop() or onPause() of the activity the following can be used --
@Override
protected void onPause() {
unregisterReceiver(myReceiver);
super.onPause();
}
I am hoping this should work fine. If not, let me know what problem you are facing.