我已经发布了一个应用程序,用户可以在其中拍照。我这样做是为了捕捉照片:
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
和Android3.0
上测试了我的应用,它运行正常。但是当我在Android4.0.3
上运行我的应用时,它崩溃了:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.media.action.IMAGE_CAPTURE (has extras) }
我如何解决这个问题?
答案 0 :(得分:4)
可能会发生几件事
您的案件是否符合以上任何一项?
答案 1 :(得分:3)
检查你的
1.Tablet有相机(如果您使用平板电脑)。 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!");
}
}
}