在android7.0以上版本傳統的拍照功能**要作改變,特別是傳統的uri被認為是不安全的,要通過fileprovider封裝uri
intent intent=new intent(mediastore.action_image_capture);file file=new file(temp_image_path);
file.createnewfile();
photouri=uri.fromfile(file);
if (build.version.sdk_int>=24)
photouri=fileprovider.geturiforfile(this,"com.example.aa.puzzle.fileprovider",file);
intent.putextra(mediastore.extra_output,photouri);
android:authorities
是用來標識provider的唯一標識,和前面的**對應,granuripermissions用來控制共享文章的訪問許可權
在res新建資料夾xml,新建檔案path.xml
<?xml version="1.0" encoding="utf-8"?>
同時由於我的手機沒有sd卡,特意去了解了直接存在系統相簿的方法
string temp_image_path=environment.getexternalstoragedirectory().getpath()+"/puzzle/";
前面的函式可以獲取到手機儲存的目錄,下面那個資料夾可以新建也可以直接放在已有的檔案比如camera,我這裡是放在新建
資料夾puzzle
new file(temp_image_path).mkdir();//新建資料夾
temp_image_path=temp_image_path+"image.png";//補全路徑,建議用時間戳或隨機函式
file file=new file(temp_image_path);
file.createnewfile();
然後通過第一段**吧file通過fileprovider轉為uri,再傳給
mediastore.extra_output
還需要添上這句話更新相簿
sendbroadcast(new intent(intent.action_media_scanner_scan_file, uri.parse("file://" + temp_image_path)));
當然,還有第二種方法可以把**儲存到相簿
mediastore.images.media.insertimage(getcontentresolver(),bitmap,string.valueof(math.random())+"image","image");
intent.putextra(mediastore.extra_video_quality,1);
防止被壓縮。 iOS檢查App新版本並更新新版本
檢查新版本 更新 第一種方法 檢查新版本 更新 dispatch async dispatch get global queue dispatch queue priority default,0 檢查新版本更新 void showalert void alertview uialertview a...
Android版本更新 版本號判斷
先貼乙個後台返回的一般版本更新介面格式 假設目前已判斷到後台code 本地 如下 首先拿到本地的 的 物件 public static file querydownloadedapk context context cur.close return targetapkfile 拿到 file tar...
新版本的mybatis的介紹
1.如果出現資料庫的名稱和實體類的名稱不一致,會出現傳入物件的時候,讀取不到數值 比如 select id,uname as name from user 資料庫的名稱為uname,實體類為name,此時需要起個別名 2.1在實現的時候,查詢字串,需要namespace.sqlid,容易拼接錯誤 2...