android新版本下開啟相簿取出相片新姿勢

2021-08-08 15:26:05 字數 1376 閱讀 5864

intent intent=new intent(intent.action_get_content);

intent.settype("image/*");

startactivityforresult(intent,result_image);

首先是開啟相簿,這沒什麼好說的,呼叫系統程式,開啟image型別的檔案,然後看看回掉函式:
uri uri=data.getdata();

string imagepath=null;

if (build.version.sdk_int >= build.version_codes.kitkat)

else imagepath=getimagepath(uri,null);

intent intent=new intent(mainactivity.this,puzzle.class);

intent.putextra("mpicpath",imagepath);

startactivity(intent);

當android版本大於4.4會呼叫handleuritopath(uri)函式把封裝過的uri重新解析成我們能使用的uri。

@requiresapi(api = build.version_codes.kitkat)

private string handleuritopath(uri uri)

else if ("com.android.providers.downloads.documents".equals(uri.getauthority()))

}else if ("content".equalsignorecase(uri.getscheme()))

return getimagepath(uri,null);

else if ("file".equalsignorecase(uri.getscheme()))

return uri.getpath();

return null;

}

下面還有兩句,分別判斷頭部協議是content還是file,content的話就直接使用寫好的getimagepath函式,fie更簡單,uri.getpath()就出來路徑了,最後貼身getimagepath(uri uri)**,也是我們在4.4以前最常用的一段**

string path=null;

cursor cursor=getcontentresolver().query(uri,null,selection,null,null);

if (cursor!=null)

}cursor.close();

return path;

android新版本的拍照並儲存系統相簿功能

在android7.0以上版本傳統的拍照功能 要作改變,特別是傳統的uri被認為是不安全的,要通過fileprovider封裝uri intent intent new intent mediastore.action image capture file file new file temp im...

MacOS下安裝新版本homebrew

在網上查詢安裝教程,有很多教程會說使用以下命令來執行安裝 usr bin ruby e curl fssl 但是會提示連線被拒絕 curl 7 failed to connect to raw.githubusercontent.com port 443 connection refused 或者會...

iOS檢查App新版本並更新新版本

檢查新版本 更新 第一種方法 檢查新版本 更新 dispatch async dispatch get global queue dispatch queue priority default,0 檢查新版本更新 void showalert void alertview uialertview a...