Question

I'm trying to determine whether a particular Android device has a camera. The documentation for the android.hardware.Camera.open() states

Creates a new Camera object to access the first back-facing camera on the device. If the device does not have a back-facing camera, this returns null.

The Kindle I am testing on (first generation I believe) does not have any camera, and yet open() is returning non-null. Why is that? Perhaps because Amazon runs a forked version of Android with different behavior? Is there another way to determine whether or not the device has a camera?

Was it helpful?

Solution

Maybe this can help you

/**
 * Determines if the current device can handle an image capture action.
 * @return true if the device can handle an image capture action. False if it cannot.
 */
protected boolean canHandleCameraIntent() {
  final Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
  final List<ResolveInfo> results = getPackageManager().queryIntentActivities(intent, 0);
  return (results.size() > 0);            
}

more content at https://developer.amazon.com/sdk/fire/specifications.html

Update

I can't test that for you, but I think this could also help you

http://developer.android.com/reference/android/content/pm/PackageManager.html

PackageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top