Android 解決小米手機選取圖片返回值為null
阿新 • • 發佈:2019-01-22
之前寫過一篇呼叫系統相機拍照和選取本地圖片並裁剪的部落格,然後昨天有人和我說你的那個demo在小米手機上在本地相簿中選取圖片之後會崩掉,然後我在這裡解答一下這個問題,問題原因是因為小米手機在選取圖片之後給我們返回的是一個null.那麼下面就是解決辦法
/** * 解決小米手機上獲取圖片路徑為null的情況 * @param intent * @return */ public Uri geturi(android.content.Intent intent) { Uri uri = intent.getData(); String type = intent.getType(); if(uri.getScheme().equals("file") && (type.contains("image/"))) { String path = uri.getEncodedPath(); if (path != null) { path = Uri.decode(path); ContentResolver cr = this.getContentResolver(); StringBuffer buff = new StringBuffer(); buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=") .append("'" + path + "'").append(")"); Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Images.ImageColumns._ID }, buff.toString(), null, null); int index = 0; for (cur.moveToFirst();!cur.isAfterLast(); cur.moveToNext()) { index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID); index = cur.getInt(index); } if (index == 0) { } else { Uri uri_temp = Uri .parse("content://media/external/images/media/" + index); if (uri_temp != null) { uri = uri_temp; } } } } return uri; }