向用戶請求權(quán)限的正確方式
權(quán)限的目的是保護(hù)用戶隱私,那么在何時(shí)以及用什么方式請求用戶權(quán)限會是比較合適的?本文將詳細(xì)介紹Android的運(yùn)行時(shí)權(quán)限模型,并展示設(shè)計(jì)一個(gè)UX來請求你的應(yīng)用程序所需的權(quán)限,希望對你有所啟發(fā)。
從Android 6.0開始,沒有在安裝時(shí)請求所有權(quán)限,而是引入了運(yùn)行時(shí)權(quán)限模型,開發(fā)者可以控制應(yīng)用何時(shí)以及如何請求權(quán)限。這如同你想邀某人出去約會,過早、過頻繁或以錯(cuò)誤的方式對你來說并不好。
本文我將詳細(xì)介紹Android的運(yùn)行時(shí)權(quán)限模型,并向你展示如何設(shè)計(jì)一個(gè)UX來請求你的應(yīng)用程序所需的權(quán)限。權(quán)限的目的是保護(hù)用戶的隱私,但當(dāng)你請求權(quán)限時(shí),你是在要求用戶放棄一點(diǎn)隱私,因此,你需要提供明確且平等的利益以換取訪問。運(yùn)行時(shí)權(quán)限允許你在用戶更了解你請求權(quán)限的原因和授予權(quán)限的好處時(shí)選擇合適的時(shí)間請求權(quán)限。Android實(shí)現(xiàn)它們的方式使得以正確的方式請求它們變得十分重要。
運(yùn)行時(shí)權(quán)限模型有利于保護(hù)用戶的隱私,當(dāng)你的應(yīng)用程序請求權(quán)限時(shí),Android會顯示一個(gè)對話框讓用戶接受或拒絕它,第一次請求權(quán)限時(shí)對話框不會顯示“不再詢問”復(fù)選框,只會在用戶至少一次拒絕權(quán)限請求后顯示它,你可以檢查之前是否被拒絕過,并明智的決定在何時(shí)提供更多教育。
從Android 11開始,如果用戶在使用應(yīng)用的過程中多次拒絕某項(xiàng)特定的權(quán)限,那么在你的應(yīng)用再次請求該權(quán)限時(shí),用戶將不會看到系統(tǒng)權(quán)限對話框。該操作表示用戶希望“不再詢問”。
你無需過度防御,例如在實(shí)際請求權(quán)限之前你始終通過預(yù)許可(預(yù)授權(quán))來衡量用戶授予權(quán)限的可能性,本質(zhì)上是請求兩次,這種雙重提示可能是不必要且煩人的,你可以通過在正確的時(shí)間以正確的方式詢問來達(dá)到同樣的效果。
Material Design分解了在兩個(gè)維度上請求權(quán)限的不同方法。首先權(quán)限對你的應(yīng)用程序的運(yùn)行有多重要?其次,你請求它的原因有多清晰?根據(jù)這兩個(gè)因素,建議你采用不同的方法來請求權(quán)限。
圖片來源:Material Design
一、預(yù)先請求權(quán)限(Ask up-front)
如果某項(xiàng)權(quán)限對應(yīng)用程序運(yùn)行至關(guān)重要,并且顯而易見為什么需要請求它。例如日歷應(yīng)用,拒絕日歷權(quán)限會使應(yīng)用程序無法運(yùn)行,并且用戶顯然知道日歷應(yīng)用的用途以及請求日歷權(quán)限的原因,因此不需要用任何不必要的解釋來打擾用戶,只需在用戶首次啟動應(yīng)用時(shí)立即請求它即可。
預(yù)先請求權(quán)限
二、預(yù)先教育(Educate up-front)
如果某項(xiàng)權(quán)限對應(yīng)用至關(guān)重要,但請求它的原因不是很清晰。例如信貸應(yīng)用,為了準(zhǔn)確評估用戶的信貸資格、償還能力和防范反欺詐,通訊錄權(quán)限、通話記錄權(quán)限、位置權(quán)限對于風(fēng)控而言非常重要,建議請求權(quán)限之前對用戶進(jìn)行教育。
預(yù)先教育
三、使用場景中請求權(quán)限(Ask in context)
如果應(yīng)用中的某項(xiàng)次要功能需要權(quán)限,但請求它的原因很清晰,建議你在使用場景中請求權(quán)限。例如筆記應(yīng)用允許用戶使用語音或音頻創(chuàng)建筆記,那么很明顯為什么此功能需要麥克風(fēng)權(quán)限,無需過早的請求它,以免用戶負(fù)擔(dān)過重,最好等到用戶嘗試使用該功能時(shí),因?yàn)橛脩舾锌赡茉试S符合其預(yù)期的權(quán)限請求。
使用場景中請求權(quán)限
四、結(jié)合使用場景進(jìn)行教育(Educate in context)
如果應(yīng)用中的某項(xiàng)次要功能需要權(quán)限,并且請求他的原因不是很清晰,建議你結(jié)合使用場景進(jìn)行教育。例如筆記應(yīng)用允許用戶與朋友協(xié)作,那么請求聯(lián)系人權(quán)限可能是合理的,但它不是顯而易見的,當(dāng)用戶調(diào)用該功能時(shí),解釋應(yīng)用獲得聯(lián)系人權(quán)限后可為用戶提供哪些好處,比如自動填充郵件地址,然后才請求聯(lián)系人權(quán)限讓用戶授予它。
結(jié)合使用場景進(jìn)行教育
五、處理權(quán)限請求遭拒情況
通過使用正確的方法,用戶應(yīng)該清楚應(yīng)用請求權(quán)限的原因以及應(yīng)用獲得權(quán)限后可以為他們提供哪些好處。然而,這并不意味著用戶一定會授予權(quán)限。如果用戶拒絕了權(quán)限請求,建議采用以下做法:
- 在應(yīng)用界面中突出顯示因?yàn)闆]有獲得特定權(quán)限而受限的功能所在的具體部分,例如在原本用于顯示該功能的結(jié)果或數(shù)據(jù)的位置顯示一條消息,讓用戶知道因缺少權(quán)限而無法使用該功能,幫助用戶在權(quán)限和功能之間建立心理聯(lián)系。
- 不要阻止界面顯示,不要全屏警告消息,讓用戶根本無法繼續(xù)使用應(yīng)用。即使在權(quán)限請求遭拒后,應(yīng)用也應(yīng)盡可能提供最佳的用戶體驗(yàn)。例如即使麥克風(fēng)使用權(quán)限請求遭拒,仍應(yīng)全面提高文本功能的易用性。
- 用戶可能已經(jīng)選中了“不再詢問“復(fù)選框,應(yīng)用可能會在用戶未看到權(quán)限請求對話框的情況下受到拒絕,此時(shí)應(yīng)用應(yīng)該提供一個(gè)鏈接,鏈接到設(shè)備設(shè)置中用戶可以打開權(quán)限的具體位置。
六、盡量減少權(quán)限請求
在應(yīng)用中聲明權(quán)限之前,請先考慮是否需要這樣做,或者是否有替代方法可以在應(yīng)用中支持該功能。因?yàn)槿绻麘?yīng)用聲明權(quán)限,那么每當(dāng)用戶使用需要運(yùn)行時(shí)權(quán)限的功能時(shí),應(yīng)用便不得不中斷用戶的操作,請求相應(yīng)權(quán)限。然后,用戶必須做出決定。如果用戶不能理解您的應(yīng)用為何請求特定權(quán)限,可能就會拒絕授予該權(quán)限,甚至卸載應(yīng)用。下面介紹幾個(gè)可以在不聲明任何權(quán)限的情況下實(shí)現(xiàn)的用例:
1. 拍攝照片/錄制視頻
Android為應(yīng)用提供了相互通信的功能,讓你可以將任務(wù)委托給其他應(yīng)用。例如,如果你希望允許用拍照,但它不是應(yīng)用的核心部分,可以考慮使用Intent請求相機(jī)應(yīng)用拍攝照片并將其分享給你的應(yīng)用,這樣就不需要CAMERA權(quán)限。
2. 自動輸入動態(tài)短信驗(yàn)證碼
雙因素身份驗(yàn)證流程中,動態(tài)短信驗(yàn)證碼作為第二校驗(yàn)因素時(shí),使用SMS Retriever API(短信檢索器)可以讓應(yīng)用自動執(zhí)行用戶身份驗(yàn)證,不需要用戶手動輸入驗(yàn)證碼,不需要READ_SMS權(quán)限。
以上就是Android運(yùn)行時(shí)權(quán)限模型和請求權(quán)限的一些方法,你可以針對何時(shí)以及如何請求權(quán)限設(shè)計(jì)完美的流程,從而最大程度的提高用戶授予權(quán)限的可能性。
本文由@張楚 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于 CC0 協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
干貨