1. 程式人生 > >Android 解決小米手機選取圖片返回值為null

Android 解決小米手機選取圖片返回值為null

之前寫過一篇呼叫系統相機拍照和選取本地圖片並裁剪的部落格,然後昨天有人和我說你的那個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; }