我的应用程序的一项功能包括相机。用户拍照,应用程序显示图像。
我使用 StartActivityForResult 从 ACTION_IMAGE_CAPTURE 开始一个意图,并使用 onActivityResult 捕获响应。通常我可以简单地根据我在 onActivityResult 中收到的意图调用getData()并获取 MediaProvider 的内容 uri。
我的问题如下:我的一个测试设备是华为 ALE-L21,我在 onActivityResult 中获得的意图没有数据,而是有一个可拆分的额外内容。我怎么能从中得到用户的照片?Android Studio 也没有告诉我这个 parcellable extra 的名称
免责声明:我调用 getActivity() 是因为我在片段中使用此代码
这是我用来拿相机的。
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(takePictureIntent, getResources().getInteger(R.integer.RQ_PERMISSION_WRITE_EXTERNAL_STORAGE));
}
这是我的 onActivityResult 中的代码
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultIntent) {
super.onActivityResult(requestCode, resultCode, resultIntent);
switch (requestCode) {
case 1: //RQ_ImageCapture
case 2: //RQ_ImageSelected
if (resultIntent != null) {
try {
Uri selectedImage = resultIntent.getData();
if(selectedImage != null) {
Bitmap bitmap =
MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage);
setImageAsBackground(selectedImage, bitmap);
}
} catch (IOException e) {
e.printStackTrace();
}
}
break;
}
}