开发者

Android: How to listen to camera capture in Broadcastreceiver

I saw many posts in StackOverflow regarding how to listen to camera events, and got few information but still there are few questions remain in my mind please let 开发者_开发问答me know the answers for these:

I have an application which have a broadcast receiver and my broadcast receiver will lauch my activity, but the main purpose of having broadcast receiver is to listen to camera photo/video capture intent.

I want to know which is the intent i have to listen for this, and is it possible to do in this way.

thanks


For Receiving camera photo capture intent, try following code

public class CameraEventReciver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

       Toast.makeText(context, "New Photo Clicked", Toast.LENGTH_LONG).show();

    } 

and in manifest, register the receiver:-

<uses-permission android:name="android.permission.CAMERA" />

   <receiver
        android:name="com.android.application.CameraEventReciver"
        android:enabled="true" >
        <intent-filter>
            <action android:name="com.android.camera.NEW_PICTURE" />
            <data android:mimeType="image/*" />
        </intent-filter>
    </receiver>


In your Android Manifest, you need to specify which intents you want to receive. For camera that'd be the following code (this goes within the <application> tags):

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

In addition to that, you should add this to your <intent-filter> within the <activity> tags:

<category android:name="android.intent.category.DEFAULT" />

Finally, take care of the event in your activity's code like so:

@Override
public void onReceive(Context context, Intent intent) {
    abortBroadcast();  
    //TODO: your code here
}


You can use thread that will control your directory camera like:

FileObserver observer =new FileObserver("/mnt/extSd/DCIM/Camera/"){

                    @Override
                    public void onEvent(int event, String file) {
                        // TODO Auto-generated method stub
                        if(event == FileObserver.CREATE ){
                            //Do Some things With The file
                        }
                    }};
                 } catch (FileNotFoundException e) {
                e.printStackTrace(); 
}
observer.startWatching();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜