日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 解决小米手机上选择照片路径为null的问题

發(fā)布時(shí)間:2024/4/15 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 解决小米手机上选择照片路径为null的问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? 之前做了一個(gè)獲取相冊(cè)選擇圖片的功能,后來測試人員在小米的手機(jī) 測試時(shí)出現(xiàn)崩潰現(xiàn)象。自己就在網(wǎng)上查找資料,發(fā)現(xiàn)是小米的獲取圖片路徑的代碼與其他的手機(jī)不一樣,于是修改了代碼,解決了這個(gè)問題,這里記錄一下。


這是在onActivityResult方法中執(zhí)行的,

if (data == null) {return;}uri = data.getData();uri = geturi(data);//解決方案String[] proj = { MediaStore.Images.Media.DATA };Cursor cursor = query(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);}


這里面如果不加uri?=?geturi(data);這個(gè)代碼,在其他的手機(jī)上是沒有問題的,但是在小米手機(jī)會(huì)崩潰。




/*** 解決小米手機(jī)上獲取圖片路徑為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(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/images/media/" + index); if (uri_temp != null) { uri = uri_temp; } } } } return uri; }

這里面是先判斷相冊(cè)返回的intent的type,如果是小米手機(jī),則type包含("image/")),它的Scheme也是file。然后獲取到圖片的路徑,然后解析路徑得到圖片在手機(jī)的uri的ID,通過ContentResolver查詢圖片的ID得到圖片的URI的索引,然后返回圖片的URI.這樣就處理了小米手機(jī)獲取圖片URI的代碼。其他手機(jī)直接?uri?=?data.getData();?就獲取到了URI.


有點(diǎn)麻煩,自己都有些不懂的,大家可以去網(wǎng)上查找資料看看。


android 解決小米手機(jī)上選擇照片路徑為null的問題就講完了,就這么簡單。















































總結(jié)

以上是生活随笔為你收集整理的android 解决小米手机上选择照片路径为null的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。