2 pyxfighting PYXFighting 于 2016.03.22 15:54 提问

android6.0版本调用系统相册返回参数cursor为空
        Uri selectedImage = data.getData();
        pathString = CommonTools.Uri2Path(selectedImage, SharedPhotoActivity.this);

          /**
 * 通过uri得到path
 */
public static String Uri2Path(Uri uri, Context context) {
    String[] filePathColumns = {
            MediaStore.Images.Media.DATA
    };
    Cursor cursor = context.getContentResolver().query(uri, filePathColumns, null,null, null);
    cursor.moveToFirst();
    int columnIndex = cursor.getColumnIndex(filePathColumns[0]);
    // 获取图片路径
    String picturePath = cursor.getString(columnIndex);
    cursor.close();
    return picturePath;
}


    到 cursor.moveToFirst();这句话为空,  当前测试机为刷到6.0版本的小米4,用未刷机的小米4,小米2A,三星等机型测试均未出现此问题     

1个回答

qq_35351040
qq_35351040   2016.11.23 14:52

需要动态添加权限 ,网上有

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android4.4打开系统相册返回Null问题
public interface PhotoCallBack { void onSuccess(String picturePath);// 拿取相片成功 void onFailure();// 拿取相片失败 } /** * 获取图片路径 * * @param context * @param data
Android 调用系统相册,针对6.0以上 崩溃 解决办法
Android6.0 是一个分界线 6.0之后调用 系统相册 data会返回 null 首先,打开系统照相机 Intent intent = new Intent(Intent.ACTION_PICK); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); // 开启一个带有返回值
android读取系统相册返回为空的解决办法
读取系统相册为空的问题,今天遇到过了,找到了解决办法,写出来记录一下 关于个别手机读取到相册为空,可能的原因是系统版本问题,4.4系统在获取系统返回的相册的url的时候,有可能出现为null的问题,解决办法来自网上 /** * Get a file path from a Uri. This will get the the path for Storage Access
Android调用系统相机、相册功能,适配6.0权限获取以及7.0以后获取URI(兼容多版本)
  Android中调用系统相机来拍摄照片的代码,如下:1、首先设置Uri获取判断以及相机请求Code[java] view plain copypublic final int TYPE_TAKE_PHOTO = 1;//Uri获取类型判断    public final int CODE_TAKE_PHOTO = 1;//相机RequestCode   2、调起系统相机[java] view ...
Android---相册getContentResolver().query结果为空指针
相册getContentResolver().query结果为空指针怎么办?
Android获取相册图片路径为空
一个拍照和相册选择图片的demo 注意:在有些机型上,这种写法获取到的相册图片的路径为空
Cursor返回是null
1.判断是否为空的方法是 Cursor.getCount()这么一个简单的函数,如果是0,表示Cursor为空;如果非0,则表示Cursor不为空。 2.在你操作这个insert之前,应该还动作B操作过数据库,你要看下动作B是否占有者数据库资源,锁掉了,那么insert就不能操作了。 在你insert之前,你可以用方法查看下当前数据库是否是锁着的。 sqliteReadDB.isDbLock
Android6.0选择照片问题,path为null
今天遇到一个选择图片的问题,通过下边的方式打开相册后选择图片上传无效 Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); ((Acti
查询数据库返回cursor,如何判断没有符合条件的记录。判断条件不是cursor==null 哦
如题,接着说,如果查询数据库返回cursor,要判断记录是否为空,然后根据结果进行不同的操作。应该如何写判断条件呢? 很简单,用这个函数:cursor.getCount()  。  如果记录为空,该函数返回的值为0 。 欢迎评论,欢迎转载,有问必答,共同学习。O(∩_∩)O
小米 note手机 选择本地视频 获取cursor 为空
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { // TODO 选择视频回调 case ProfilePhotoTask.PHOTO_CAMERA: