Android7.0機型適配

Android7.0機型適配存儲目錄的共享

都知道現在AI都很火,AI必定會誕生一些下一代巨頭企業,各行各業都爭搶這一股風,百度CEO不扔下了公司的內務不管,一頭扎進了AI的研究團隊工作中,前段時間李彥宏駕著自己公司生產的無人駕駛汽車,就是6,各個大巨頭都在AI方面有重要項目在實施,都爭搶著下一個時代的山頭。在物聯網方面,做的不錯的是小米,小米的生態鏈,聚集了70多家智能硬件公司,形成了小米生態鏈,未來的小米將會在物聯網將是一個大贏家,我們知道的小米路由器,小米手環,小米掃地機器人等都是這70多家公司中來生產和研發的,雷軍太有遠見了。好了,不閑說了,進入正題,記錄一下我嗎7.0版本對使用存儲的要求。

最近根據需求做了在線更新app問題,起初沒有對7.0以上的機型進行

適配,造成7.0手機無法跳轉到app安裝界面。

說一下吧,android系統發展越來越好用,用戶體驗越來越好,對

用戶的隱私也進行了一定規范性的保護,我們都知道從6.0系統的開始

goole就開始對app使用手機權限進行了一定的約束,對于6.0以上

的權限申請我就不多說了,對于權限申請,自己寫了一個框架,在項

目中使用很方便。下面我們就說說7.0系統對存儲使用增加

了“FileProvider”,我們來看看使用方式,閱讀一下官方文檔。

FileProvider介紹

FileProvider is a special subclass of ContentProvider that facilitates secure sharing of files associated with an app by creating a content:// Uri for a file instead of a file:/// Uri.

A content URI allows you to grant read and write access using temporary access permissions. When

you create an Intent containing a contentURI, in

order to send the content URI to a client app, you can also call Intent.setFlags() to add permissions. These permissions are available to the client app for as long as the stack for a receiving Activity is active. For an Intent going to a Service, the permissions are available as long as the Service is running.

In comparison, to control access to a file:/// Uri you have to modify the file system permissions of the underlying file. The permissions you provide become available to any app, and remain in effect until you change them. This level of access is fundamentally insecure.

The increased level of file access security offered by a content URI makes FileProvider a key part of Android's security infrastructure.

This overview of FileProvider includes the following topics:

意思就是說

FileProvider是一個特殊的ContentProvider子類,它通過為文件創建一個Content:/ / Uri而不是file:/ / Uri,從而促進與應用程序關聯的文件的安全共享。

內容URI允許您使用臨時訪問權限授予讀和寫訪問。當您創建包含內容URI的意圖時,為了將內容URI發送到客戶機應用程序,您還可以調用intent. setflags()來添加權限。只要接收活動的堆棧是活動的,客戶機應用程序就可以使用這些權限。為了獲得服務,只要服務運行,權限就可用。

相比之下,為了控制對文件的file:/ / / Uri,您必須修改底層文件的文件系統權限。您提供的權限對任何應用程序都可用,并且一直有效,直到您更改它們為止。這種級別的訪問基本上是不安全的。

由內容URI提供的文件訪問安全性的提高使得FileProvider成為Android安全基礎設施的關鍵部分。

使用方式

1.在程序清單文件中添加代碼:

...? ...? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

com.mydomain更換成自己項目的包名,唯一性。

2.在res目錄下新建一個xml文件夾,文件下新建一個xml文件“file_path”

3.file_path文件寫法

? ?

根據我們使用的存儲路徑不同,對第三層的配置也不一樣。

(1)當我們使用Context.getFilesDir()獲取路徑時我們應該配 置成 (2)當我們使用getCacheDir()獲取存儲路徑時,應該配置成 (3)使用Environment.getExternalStorageDirectory() 獲取目錄時,,path值可以為null,null代表授權這個目錄下的所有文件,name必須寫,不然會報嚴重異常 (4)使用Context.getExternalCacheDir() (5)使用Context.getExternalFilesDir(null)配置成

另外,我們在跳轉到安裝目錄代碼有變如下:

public static void install(Context context,String target) {? ? File file = new File(target);? ? Intent intent = new Intent(Intent.ACTION_VIEW);? ? // 由于沒有在Activity環境下啟動Activity,設置下面的標簽? ? intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if(Build.VERSION.SDK_INT>=24) { //判讀版本是否在7.0以上? ? ? ? //參數1 上下文, 參數2 Provider主機地址 和配置文件中保持一致? 參數3? 共享的文件? ? ? ? Uri apkUri =? ? ? ? ? ? ? ? FileProvider.getUriForFile(context,"com.gzzhe.zhhwlkj.zigou.fileprovider", file);? ? ? ? //添加這一句表示對目標應用臨時授權該Uri所代表的文件? ? ? ? intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);? ? ? ? intent.setDataAndType(apkUri,"application/vnd.android.package-archive");? ? }else{? ? ? ? intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");? ? }? ? context.startActivity(intent);}

好了就介紹到這兒吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容