android 解決小米手機上選擇照片路徑爲null狀況

昨天測試帥哥說他手機選擇圖庫崩潰了,這是一個上傳頭像的功能,相信不少應用都有這個功能,因而我就把手機拿過來打log看了下返回的路徑 爲null,在網上搜索了下解決方案,如今把解決方案記錄下:android

這是在onActivityResult方法中執行的,app

if (data == null) {
    return;
}
uri = data.getData();
uri = geturi(data);//解決方案
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, proj, null, null, null);
if(cursor!=null){
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);// 圖片在的路徑
Intent intent3 = new Intent(this, SYClipActivity.class);
intent3.putExtra("path", path);
startActivityForResult(intent3, IMAGE_COMPLETE);
}
/**
 * 解決小米手機上獲取圖片路徑爲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("p_w_picpath/"))) {  
            String path = uri.getEncodedPath();  
            if (path != null) {  
                path = Uri.decode(path);  
                ContentResolver cr = this.getContentResolver();  
                StringBuffer buff = new StringBuffer();  
                buff.append("(").append(Images.ImageColumns.DATA).append("=")  
                        .append("'" + path + "'").append(")");  
                Cursor cur = cr.query(Images.Media.EXTERNAL_CONTENT_URI,  
                        new String[] { Images.ImageColumns._ID },  
                        buff.toString(), null, null);  
                int index = 0;  
                for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {  
                    index = cur.getColumnIndex(Images.ImageColumns._ID);  
                    // set _id value  
                    index = cur.getInt(index);  
                }  
                if (index == 0) {  
                    // do nothing  
                } else {  
                    Uri uri_temp = Uri  
                            .parse("content://media/external/p_w_picpaths/media/"  
                                    + index);  
                    if (uri_temp != null) {  
                        uri = uri_temp;  
                    }  
                }  
            }  
        }  
        return uri;  
    }



轉自:http://blog.csdn.net/coderinchina/article/details/50799501ide

相關文章
相關標籤/搜索