用戶必須明確授予權限給iOS和Android應用程序,這樣應用程序才可以訪問用戶的私人數據。在過去,這兩個移動操作系統關于應用程序權限請求是不同的,即在下載和安裝過程中或在運行時的前期差異。然而,Android也在運行時需要的明確請求權限的方向前進,類似于iOS的權限請求模型。
應用程序請求權限無論是在在第一個應用程序啟動時安裝(安卓系統),還是在運行時安裝,每個特定的權限都是必要的。
權限可以在iOS(在隱私狀態下)設置應用時回顧和改變。iOS 10截圖所示:
權限可以在設置應用程序時(在Android M開始的隱私和安全上)審查和更改。Android 7 / Nougat截圖所示。
什么是私人和個人的數據?
一個用戶的位置、聯系人、日歷、健康等等都是私人信息,應用程序必須顯式地請求訪問。應用程序通常要求以下主要權限。
- 應用程序在前臺,或前臺和后臺時,訪問位置服務(iOS)
- 近似或精確的地理位置(Android)
- 聯系人或地址簿(iOS和Android)
- 日歷(iOS和Android)
- 提醒(iOS)
- 照片(iOS)
- 藍牙共享(iOS)
- 麥克風(iOS和Android)
- 語音識別(iOS)
- 相機(iOS和Android)
- 健康(iOS)
- HomeKit(iOS)
- 媒體庫(iOS)
- 運動和健身(iOS)或身體傳感器(Android)
- 短信和彩信消息(Android)
- 外部存儲(Android)
- 設備和應用程序的歷史:日志、轉儲、運行應用程序列表、Web書簽和歷史(Android)
- WiFi連接信息(Android)
在運行時請求權限
iOS
在iOS的權限應在運行時和需要時請求。然而,對于一些應用程序,權限的預先請求也是合理的。例如,一個簡單的連接超級實用的應用程序需要訪問聯系人才能尋找重復的聯系人。它可以顯示一個屏幕來解釋應用程序的功能,并在第一次啟動時請求交互的權限。
Android
在安卓系統上,歷史上的權限是嵌入在清單文件中,當用戶從Google Play應用程序商店中下載應用程序時,將顯示給用戶。然而,權限可以在運行過程中并在需要的時候被請求,當一個設備運行的是Android 6.0(Marshmallow),并針對SDK 23和更高級的應用程序(即targetSdkVersion至少是23)。然而,還是有一些需要考慮的地方:
- 如果用戶的設備運行的是低于Android 6.0(即低于棉花糖Marshmallow)的Android版本,用戶就必須在下載期間授予權限以便繼續安裝。
- 如果你的應用程序的目標是SDK 22或更低,用戶授予權限下載期間繼續安裝在下載期間授予權限以便繼續安裝。
- 如果用戶的設備運行的是Android 6.0或更高(即Marshmallow、Nougat或更高),并且你的應用程序的目標SDK是23或更高,應用程序必須在運行時請求應用程序的權限。
- 不管有針對性的SDK,運行Android 6.0(棉花糖Marshmallow)或更高的用戶可以允許和拒絕設置應用程序(隱私和安全性的前提下)的權限。
- 應用發行商必須考慮,無論是在設備上運行Android 6(Marshmallow)或更高的設置應用程序,當用戶拒絕許可,還是當針對目標在SDK23或更高的應用程序運行時被問及的情況。
- 權限必須在有針對性的SDK或Android操作系統版本的清單中申報,并且在用戶下載時顯示。
當請求權限時的考慮因素
當我們請求為APP出版商列出的權限時,有相當多的考慮因素。
- 當應用程序清楚、絕對需要的時候,只有通過應用程序的權限請求才能訪問個人數據。
- 提供一個令人信服的理由為什么該應用程序需要權限總是一個好主意,即使它是顯而易見的。請求一個應用程序的權限時,清楚地傳達給用戶什么是可以期待的。在iOS中,你可以自定義字幕包括文本解釋哪些文本的使用。例如,用于訪問聯系人指定一個在Info.plist中的關鍵NSContactsUsageDescription的自定義文本。
- 避免在啟動時請求權限,除非你的應用程序沒有特定的權限無法繼續。
- 避免用大量不同的權限請求轟炸用戶,一個接著一個。
- 如果你可以延遲請求權限,那么就在用戶參與、被激活或它最有意義的時候請求權限。例如,延遲請求權限,直到用戶使用了至少7次應用程序和/或創建了一些內容。
- 允許用戶以交互方式和顯式請求權限。例如,用戶將更有可能在他們看到一個按鈕“Let CoolApp access Microphone”并隨著一個說明“通過給麥克風訪問CoolApp,你可以記錄你的聲音和訪問語音轉換功能”時授予權限。另一例Periscope App,讓用戶在調用iOS API觸發請求權限之前顯式點擊一個按鈕。
- 沒有正確的權限改變你的應用程序的可用性和經驗。在設置應用程序,當權限被授予、被拒絕、最初被拒絕和后來被授予、最初被授予和后來被拒絕時的設計經驗。
- 試著獲得第一次的許可。對于那些已經明確拒絕給予許可的用戶,有一個備用,你可以重定向設置應用程序,這樣用戶可以重新啟用應用程序的權限。
- 檢測是否要求許可是有意義的。例如,檢查是否啟用了位置服務,并將警報延遲到了一個更合適的時間,并提供了一個為什么要打開位置服務的說明。
- 我們以前寫的權限。
改善應用權限< OLED
如同應用程序內購買在iOS App商店列出并且在用戶下載應用程序之前對用戶生效一樣,應用程序商店應該以終端用戶消耗的方法列出應用程序需要的權限清單。Google Play列出了應用程序需要的權限,但并沒有列出來自APP出版商的說明。
應用程序發布者應該清楚地解釋用戶通過提供個人信息給你的應用程序能夠獲得什么樣的價值。
設置應用程序應該列出提供隱私部分下的說明的應用程序發布者。例如,它可以清楚讓用戶了解為什么Health APP需要運動和健身的個人數據,而不是讓用戶知道為什么Waze和Nexar需要他們。
本文翻譯自:
PS: 關于移動開發,這些產品你可以關注>>
關于移動開發的最新資訊和產品推薦,請<>!
標簽:
移動開發AndroidiOS訪問控制應用程序框架權限管理
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn