在應(yīng)用程序中如何請(qǐng)求個(gè)人用戶數(shù)據(jù)
用戶必須明確授予權(quán)限給iOS和Android應(yīng)用程序,這樣應(yīng)用程序才可以訪問(wèn)用戶的私人數(shù)據(jù)。在過(guò)去,這兩個(gè)移動(dòng)操作系統(tǒng)關(guān)于應(yīng)用程序權(quán)限請(qǐng)求是不同的,即在下載和安裝過(guò)程中或在運(yùn)行時(shí)的前期差異。然而,Android也在運(yùn)行時(shí)需要的明確請(qǐng)求權(quán)限的方向前進(jìn),類似于iOS的權(quán)限請(qǐng)求模型。
應(yīng)用程序請(qǐng)求權(quán)限無(wú)論是在在第一個(gè)應(yīng)用程序啟動(dòng)時(shí)安裝(安卓系統(tǒng)),還是在運(yùn)行時(shí)安裝,每個(gè)特定的權(quán)限都是必要的。
權(quán)限可以在iOS(在隱私狀態(tài)下)設(shè)置應(yīng)用時(shí)回顧和改變。iOS 10截圖所示:

權(quán)限可以在設(shè)置應(yīng)用程序時(shí)(在Android M開(kāi)始的隱私和安全上)審查和更改。Android 7 / Nougat截圖所示。

什么是私人和個(gè)人的數(shù)據(jù)?
一個(gè)用戶的位置、聯(lián)系人、日歷、健康等等都是私人信息,應(yīng)用程序必須顯式地請(qǐng)求訪問(wèn)。應(yīng)用程序通常要求以下主要權(quán)限。
- 應(yīng)用程序在前臺(tái),或前臺(tái)和后臺(tái)時(shí),訪問(wèn)位置服務(wù)(iOS)
- 近似或精確的地理位置(Android)
- 聯(lián)系人或地址簿(iOS和Android)
- 日歷(iOS和Android)
- 提醒(iOS)
- 照片(iOS)
- 藍(lán)牙共享(iOS)
- 麥克風(fēng)(iOS和Android)
- 語(yǔ)音識(shí)別(iOS)
- 相機(jī)(iOS和Android)
- 健康(iOS)
- HomeKit(iOS)
- 媒體庫(kù)(iOS)
- 運(yùn)動(dòng)和健身(iOS)或身體傳感器(Android)
- 短信和彩信消息(Android)
- 外部存儲(chǔ)(Android)
- 設(shè)備和應(yīng)用程序的歷史:日志、轉(zhuǎn)儲(chǔ)、運(yùn)行應(yīng)用程序列表、Web書(shū)簽和歷史(Android)
- WiFi連接信息(Android)
在運(yùn)行時(shí)請(qǐng)求權(quán)限
iOS
在iOS的權(quán)限應(yīng)在運(yùn)行時(shí)和需要時(shí)請(qǐng)求。然而,對(duì)于一些應(yīng)用程序,權(quán)限的預(yù)先請(qǐng)求也是合理的。例如,一個(gè)簡(jiǎn)單的連接超級(jí)實(shí)用的應(yīng)用程序需要訪問(wèn)聯(lián)系人才能尋找重復(fù)的聯(lián)系人。它可以顯示一個(gè)屏幕來(lái)解釋應(yīng)用程序的功能,并在第一次啟動(dòng)時(shí)請(qǐng)求交互的權(quán)限。
Android
在安卓系統(tǒng)上,歷史上的權(quán)限是嵌入在清單文件中,當(dāng)用戶從Google Play應(yīng)用程序商店中下載應(yīng)用程序時(shí),將顯示給用戶。然而,權(quán)限可以在運(yùn)行過(guò)程中并在需要的時(shí)候被請(qǐng)求,當(dāng)一個(gè)設(shè)備運(yùn)行的是Android 6.0(Marshmallow),并針對(duì)SDK 23和更高級(jí)的應(yīng)用程序(即targetSdkVersion至少是23)。然而,還是有一些需要考慮的地方:
- 如果用戶的設(shè)備運(yùn)行的是低于Android 6.0(即低于棉花糖Marshmallow)的Android版本,用戶就必須在下載期間授予權(quán)限以便繼續(xù)安裝。
- 如果你的應(yīng)用程序的目標(biāo)是SDK 22或更低,用戶授予權(quán)限下載期間繼續(xù)安裝在下載期間授予權(quán)限以便繼續(xù)安裝。
- 如果用戶的設(shè)備運(yùn)行的是Android 6.0或更高(即Marshmallow、Nougat或更高),并且你的應(yīng)用程序的目標(biāo)SDK是23或更高,應(yīng)用程序必須在運(yùn)行時(shí)請(qǐng)求應(yīng)用程序的權(quán)限。
- 不管有針對(duì)性的SDK,運(yùn)行Android 6.0(棉花糖Marshmallow)或更高的用戶可以允許和拒絕設(shè)置應(yīng)用程序(隱私和安全性的前提下)的權(quán)限。
- 應(yīng)用發(fā)行商必須考慮,無(wú)論是在設(shè)備上運(yùn)行Android 6(Marshmallow)或更高的設(shè)置應(yīng)用程序,當(dāng)用戶拒絕許可,還是當(dāng)針對(duì)目標(biāo)在SDK23或更高的應(yīng)用程序運(yùn)行時(shí)被問(wèn)及的情況。
- 權(quán)限必須在有針對(duì)性的SDK或Android操作系統(tǒng)版本的清單中申報(bào),并且在用戶下載時(shí)顯示。
當(dāng)請(qǐng)求權(quán)限時(shí)的考慮因素
當(dāng)我們請(qǐng)求為APP出版商列出的權(quán)限時(shí),有相當(dāng)多的考慮因素。
- 當(dāng)應(yīng)用程序清楚、絕對(duì)需要的時(shí)候,只有通過(guò)應(yīng)用程序的權(quán)限請(qǐng)求才能訪問(wèn)個(gè)人數(shù)據(jù)。
- 提供一個(gè)令人信服的理由為什么該應(yīng)用程序需要權(quán)限總是一個(gè)好主意,即使它是顯而易見(jiàn)的。請(qǐng)求一個(gè)應(yīng)用程序的權(quán)限時(shí),清楚地傳達(dá)給用戶什么是可以期待的。在iOS中,你可以自定義字幕包括文本解釋哪些文本的使用。例如,用于訪問(wèn)聯(lián)系人指定一個(gè)在Info.plist中的關(guān)鍵NSContactsUsageDescription的自定義文本。
- 避免在啟動(dòng)時(shí)請(qǐng)求權(quán)限,除非你的應(yīng)用程序沒(méi)有特定的權(quán)限無(wú)法繼續(xù)。
- 避免用大量不同的權(quán)限請(qǐng)求轟炸用戶,一個(gè)接著一個(gè)。
- 如果你可以延遲請(qǐng)求權(quán)限,那么就在用戶參與、被激活或它最有意義的時(shí)候請(qǐng)求權(quán)限。例如,延遲請(qǐng)求權(quán)限,直到用戶使用了至少7次應(yīng)用程序和/或創(chuàng)建了一些內(nèi)容。
- 允許用戶以交互方式和顯式請(qǐng)求權(quán)限。例如,用戶將更有可能在他們看到一個(gè)按鈕“Let CoolApp access Microphone”并隨著一個(gè)說(shuō)明“通過(guò)給麥克風(fēng)訪問(wèn)CoolApp,你可以記錄你的聲音和訪問(wèn)語(yǔ)音轉(zhuǎn)換功能”時(shí)授予權(quán)限。另一例Periscope App,讓用戶在調(diào)用iOS API觸發(fā)請(qǐng)求權(quán)限之前顯式點(diǎn)擊一個(gè)按鈕。

- 沒(méi)有正確的權(quán)限改變你的應(yīng)用程序的可用性和經(jīng)驗(yàn)。在設(shè)置應(yīng)用程序,當(dāng)權(quán)限被授予、被拒絕、最初被拒絕和后來(lái)被授予、最初被授予和后來(lái)被拒絕時(shí)的設(shè)計(jì)經(jīng)驗(yàn)。
- 試著獲得第一次的許可。對(duì)于那些已經(jīng)明確拒絕給予許可的用戶,有一個(gè)備用,你可以重定向設(shè)置應(yīng)用程序,這樣用戶可以重新啟用應(yīng)用程序的權(quán)限。
- 檢測(cè)是否要求許可是有意義的。例如,檢查是否啟用了位置服務(wù),并將警報(bào)延遲到了一個(gè)更合適的時(shí)間,并提供了一個(gè)為什么要打開(kāi)位置服務(wù)的說(shuō)明。
- 我們以前寫的權(quán)限。
改善應(yīng)用權(quán)限< OLED
如同應(yīng)用程序內(nèi)購(gòu)買在iOS App商店列出并且在用戶下載應(yīng)用程序之前對(duì)用戶生效一樣,應(yīng)用程序商店應(yīng)該以終端用戶消耗的方法列出應(yīng)用程序需要的權(quán)限清單。Google Play列出了應(yīng)用程序需要的權(quán)限,但并沒(méi)有列出來(lái)自APP出版商的說(shuō)明。

應(yīng)用程序發(fā)布者應(yīng)該清楚地解釋用戶通過(guò)提供個(gè)人信息給你的應(yīng)用程序能夠獲得什么樣的價(jià)值。
設(shè)置應(yīng)用程序應(yīng)該列出提供隱私部分下的說(shuō)明的應(yīng)用程序發(fā)布者。例如,它可以清楚讓用戶了解為什么Health APP需要運(yùn)動(dòng)和健身的個(gè)人數(shù)據(jù),而不是讓用戶知道為什么Waze和Nexar需要他們。

本文翻譯自: