小米手機(jī)調(diào)用系統(tǒng)相冊(cè)異常

在做項(xiàng)目的時(shí)候,需要調(diào)取手機(jī)本地的圖片并上傳到服務(wù)器,在小米手機(jī)上測(cè)試的時(shí)候,獲取的cursor為null,在其他手機(jī)上是沒有問(wèn)題,查詢資料發(fā)現(xiàn),在Android4.4之后返回的不再是圖片的絕對(duì)路徑,而是圖片的編碼,我們需要做一些轉(zhuǎn)換處理才能使用

老子是有素質(zhì)的人
public static Uri geturi(Intent intent,Context context) {
        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 = context.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;
    }

利用這個(gè)方法獲得的路徑就是正確的圖片路徑了,不止在小米手機(jī)上,在其他手機(jī)上也能用,其中參數(shù)intent是onActivityResult中的參數(shù)Intent data。
最后來(lái)張雍正的圖片鎮(zhèn)樓,專治bug(八阿哥),希望程序員少遇到點(diǎn)坑。

我最可愛

頭條號(hào)申請(qǐng)者 :飛奔的小付

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容