我想启动默认相机,但希望它像从启动器启动一样运行(即,相机应用程序应将生成的图片存储到用户的图库,而不是返回到我的应用程序)。如果我使用Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
,相机应用程序使用“OK?重试?”-UI 并且不保存图片。我宁愿不使用“直接”com.android.camera
意图,因为很多设备都使用自定义相机应用程序。我已经看到 stock gallery3d-app 使用别名实现com.android.camera/.Camera
,但我不确定每个预加载的制造商相机应用程序都这样做。
问问题
9321 次
2 回答
13
我现在已经这样实现了:
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
try {
PackageManager pm = mContext.getPackageManager();
final ResolveInfo mInfo = pm.resolveActivity(i, 0);
Intent intent = new Intent();
intent.setComponent(new ComponentName(mInfo.activityInfo.packageName, mInfo.activityInfo.name));
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);
} catch (Exception e){
Log.i(TAG, "Unable to launch camera: " + e);
}
于 2013-09-03T23:34:55.183 回答
13
这段代码可以解决问题:
Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
context.startActivity(intent);
于 2015-05-04T22:42:37.657 回答