Android : how to check if device has camera

In Android, you can use PackageManager , hasSystemFeature() method to check if a device has camera, gps or other features.

See full example of using PackageManager in an activity class.


package com.mkyong.android;

import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;

public class FlashLightActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.main);

		Context context = this;
		PackageManager packageManager = context.getPackageManager();

		// if device support camera?
		if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
			//yes
			Log.i("camera", "This device has camera!");
		}else{
			//no
			Log.i("camera", "This device has no camera!");
		}

		
	}
}
Camera flashlight example
You may interest on this example – How to turn on/off camera LED/flashlight in Android.

Reference

  1. Android PackageManager Javadoc

mkyong

Founder of Mkyong.com, passionate Java and open-source technologies. If you enjoy my tutorials, consider making a donation to these charities.

6 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Joe
8 years ago

does not work, there is a bug

mussharapp
12 years ago

According to the docs here
http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_CAMERA, FEATURE_CAMERA pertains to the back camera. So if you are using a
device with only the front facing camera(like the first gen Nexus 7) then the code above won’t work. I think you should also check FEATURE_CAMERA_FRONT.

Nayyi
13 years ago

why

Log.i("Camera","This has a camera");

doesn’t work?

Agustin Ernesto
13 years ago

Thank you so much for this tutorials !; they are like a starting point for me… although I am asked to develop ADF Apps, I think this would be a good way to earn some more bucks… now I am under the account of a bank but soon under the account of a credit card… so I’ll be proposing my idea in some more months… blessings

Mike
13 years ago

Thanks for the informative blog! Any idea how to mock/shadow the PackageManager for Android?