I have released an App which user can take photo in it.I do this to capturing photo:
File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );
and also I added this permission to manifest:
<uses-permission android:name="android.permission.CAMERA" />
I tested my App on Android2.3.5
and Android3.0
,and it works fine.But when I run my App on Android4.0.3
,it crashes:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.media.action.IMAGE_CAPTURE (has extras) }
How I can solve this problem?
several things can be happened
- there might not be any camera in the device
- there is no sd card in the device
does your case meet any of the above?
Check if your
1.Tablet has camera (if your using tablet). 2. A phone has camera 3. No SD card installed.
Add the below to manifest.
<uses-feature android:name="android.hardware.camera" />
Will prevent apps being downloaded from google play.
http://developer.android.com/google/play/filters.html
Also Check http://developer.android.com/guide/topics/manifest/uses-feature-element.html
To check if your device has camera.
public class MainActivity 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!");
}
}
}