Home » Android » android: how to register my app as "camera app"

android: how to register my app as "camera app"

Posted by: admin June 15, 2020 Leave a comment


I was wondering how to tell android that my app is a camera app, so other apps know that they can start my app to get a picture.
E.g. with pixlr-o-matic you can either select an image from the gallery or you can request it from a camera app of your choice.

how do i return the picture to the calling app?

How to&Answers:

This is done with intent-filters. Add the following tag to your manifest :

<activity android:name=".CameraActivity" android:clearTaskOnLaunch="true">
        <action android:name="android.media.action.IMAGE_CAPTURE" />
        <category android:name="android.intent.category.DEFAULT" />

Now your application will appear in the list when the user wants to take a picture.


Here is the proper way to return a bitmap :

Uri saveUri = (Uri) getIntent().getExtras().getParcelable(MediaStore.EXTRA_OUTPUT);

if (saveUri != null)
    // Save the bitmap to the specified URI (use a try/catch block)
    outputStream = getContentResolver().openOutputStream(saveUri);
    outputStream.write(data); // write your bitmap here
    // If the intent doesn't contain an URI, send the bitmap as a Parcelable
    // (it is a good idea to reduce its size to ~50k pixels before)
    setResult(RESULT_OK, new Intent("inline-data").putExtra("data", bitmap));

You can also check the android built-in Camera app source code.


You should specify an Intent filter to your Activity, that will specify that your app can be started to take a picture.

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

Hope this helps!