Android 要从摄像机选择中触发ActivityResult,需要什么?
我有以下代码,创建了从相机库中选择照片的意图:Android 要从摄像机选择中触发ActivityResult,需要什么?,android,camera,Android,Camera,我有以下代码,创建了从相机库中选择照片的意图: public void onPhotoButtonClick(View view) { File root = new File(Environment.getExternalStorageDirectory() + File.separator + "photos" + File.separator); root.mkdirs(); String fileName = String.format("photo_%s.j
public void onPhotoButtonClick(View view) {
File root = new File(Environment.getExternalStorageDirectory() + File.separator + "photos" + File.separator);
root.mkdirs();
String fileName = String.format("photo_%s.jpg", System.currentTimeMillis());
File sdImageMainDirectory = new File(root, fileName);
photoUri = Uri.fromFile(sdImageMainDirectory);
List<Intent> cameraIntents = new ArrayList<Intent>();
Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
PackageManager packageManager = getPackageManager();
List<ResolveInfo> listCam = packageManager.queryIntentActivities(captureIntent, 0);
for(ResolveInfo resolvedInfo : listCam) {
String packageName = resolvedInfo.activityInfo.packageName;
Intent intent = new Intent(captureIntent);
intent.setComponent(new ComponentName(packageName, resolvedInfo.activityInfo.name));
intent.setPackage(packageName);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
cameraIntents.add(intent);
}
Intent galleryIntent = new Intent();
galleryIntent.setType("image/*");
galleryIntent.setAction(Intent.ACTION_PICK);
Intent chooserIntent = Intent.createChooser(galleryIntent, "Select source");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, cameraIntents.toArray(new Parcelable[cameraIntents.size()]));
startActivityForResult(chooserIntent, SELECT_PHOTO);
}
我的舱单中有以下内容:
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我遗漏了什么吗?您是否尝试包含
?尝试不使用额外的意图,而只是在动作图像捕获上调用startActivityForResult()
。顺便说一句,传递到onActivityResult()
的Intent
通常不会有动作字符串,而且它当然不必有与您在Intent
中使用的动作字符串相同的动作字符串。没有办法这样做?显然我无法写入文件路径(我在Android Studio中)。
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />