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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章