0

我发布了一个应用程序,用户可以在其中拍照。我这样做是为了拍照:

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 );

我还添加了这个权限来显示:

<uses-permission android:name="android.permission.CAMERA" />

Android2.3.5我在and上测试了我的应用程序Android3.0,它工作正常。但是当我在 上运行我的应用程序时Android4.0.3,它崩溃了:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.media.action.IMAGE_CAPTURE (has extras) }

我该如何解决这个问题?

4

2 回答 2

4

有几件事可能发生

  1. 设备中可能没有任何摄像头
  2. 设备中没有 sd 卡

您的情况是否符合上述任何一项?

于 2013-03-22T08:08:48.217 回答
3

检查您的

1.平板电脑有摄像头(如果您使用平板电脑)。2.手机有摄像头 3.没有安装SD卡。

将以下内容添加到清单中。

   <uses-feature android:name="android.hardware.camera" />

将阻止从 google play 下载应用程序。 http://developer.android.com/google/play/filters.html

还要检查http://developer.android.com/guide/topics/manifest/uses-feature-element.html

检查您的设备是否有摄像头。

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!");
    }


}
}
于 2013-03-22T08:18:44.267 回答