質問

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

  1. there might not be any camera in the device
  2. 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!");
    }


}
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top