Android的 - 以23
问题描述:
我使用这个代码,以在Android上的图片,并获得路径图API,它工作正常在我的Android设备API 17Android的 - 以23
这是意图
//Open camera
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
//start the image capture Intent
startActivityForResult(intent, 100);
在这里,我得到的路径
String picturePath;
Uri selectedImage;
Bitmap photo;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == 100 && resultCode == RESULT_OK && data!=null)
{
try
{
selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
picturePath = cursor.getString(columnIndex);
//I got the picturePath, i m going to pass it to a method..
createUploadFile();
String check = uploadFile.execute(picturePath).get();
cursor.close();
....
的问题是API 24以上,onActivityResult
意向数据的本地变量为空,我在这里得到错误。
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
我已添加运行时android权限。
有帮助吗?谢谢。
答
我使用这个代码,以在Android上的图片,获取路径和它的作品在我的Android设备API罚款17
它不会对大多数设备和大多数相机应用工作,但是。对于ACTION_IMAGE_CAPTURE
,data.getData()
应该返回null
,范围为it is not documented to return anything。
你 bug是在第一个地方叫data.getData()
。您知道图像应该放在哪里:在您提供给EXTRA_OUTPUT
的位置(在这种情况下,不管fileUri
是什么)。所以,看看你的形象,摆脱不必要的query()
电话。