相容Android系統7 0,公升級安裝apk

2021-08-15 07:34:26 字數 1598 閱讀 4047

報錯**:

private void update()
報錯原因:由於在android7.0上,google使用了新的許可權機制,所以導致在呼叫相機的時候,如果傳遞的uri為」file://」型別,的系統會丟擲fileuriexposedexception這個錯誤。7.0以下是通過uri = uri.fromfile(file file)獲取的uri,然後通過intent傳出,但是在android7.0及以上版本可以採用uri = geturiforfile(context context, string authority, file file)。

解決方法:

用provider來實現開啟檔案

具體解決方法:

1.androidmanifest.xml中配置fileprovider。

rc_file_path.xml檔案配置如下:

2.安裝apk**如下:

private void update()  else 

intent.setdataandtype(uri,

intent.setflags(intent.flag_activity_new_task);

context.startactivity(intent);

}

以上相容7.0完畢

未完待續

rc_file_path.xml

<?xml version="1.0" encoding="utf-8"?>

其中根元素是固定的,內部元素可以是以下節點:

對應getfilesdir()。

對應getcachedir()。

對應environment.getexternalstoragedirectory()。

對應getexternalfilesdir()。

對應getexternalcachedir()。

所以

uri = fileprovider.geturiforfile(context, "com.example.cc.fileprovider", file);中的file檔案的根目錄要與rc_file_path.xml中配置的path對應

比如對應的path為

對應environment.getexternalstoragedirectory()。

否則會報錯: illegalargumentexception: failed to find configured root that contain

PHP 7 0 公升級備註

摘要 php 7.0.0 beta1 發布了,在帶來了引人注目的效能提公升的同時,也帶來了不少語言特性方面的改變。以下由 lctt 翻譯自對官方的公升級備註,雖然目前還不是正式發布版,不過想必距離正式發布的特性已經差別不大了。php 7.0.0 beta1 發布了,在帶來了引人注目的效能提公升的同時...

MySQL公升級5 5 36公升級5 6 37

公升級的方法一般有兩類 1.利用mysqldump來直接匯出sql檔案,匯入到新庫中,這種方法是最省事兒的,也是最保險的,缺點的話,也顯而易見,大庫的mysqldump費時費力。2.直接替換掉mysql的安裝目錄和my.cnf,利用mysql upgrade 來完成系統表的公升級,這種方法需要備份原...

Lua5 1 公升級 Lua5 3 公升級 小結

lua的版本差異確實是比較讓人頭疼的事情,之前在移動端一直採用android下使用luajit,ios下使用lua5.1。這次公升級到xlua lua5.3版本 主要有兩方面的原因 一是ulua後續維護比價差,決定要公升級到xlua,另一方面是公司在上線檢查中提示禁止luajit的使用 一些cras...