向用戶請求權限的正確方式

1 評論 3054 瀏覽 7 收藏 10 分鐘

權限的目的是保護用戶隱私,那么在何時以及用什么方式請求用戶權限會是比較合適的?本文將詳細介紹Android的運行時權限模型,并展示設計一個UX來請求你的應用程序所需的權限,希望對你有所啟發。

從Android 6.0開始,沒有在安裝時請求所有權限,而是引入了運行時權限模型,開發者可以控制應用何時以及如何請求權限。這如同你想邀某人出去約會,過早、過頻繁或以錯誤的方式對你來說并不好。

本文我將詳細介紹Android的運行時權限模型,并向你展示如何設計一個UX來請求你的應用程序所需的權限。權限的目的是保護用戶的隱私,但當你請求權限時,你是在要求用戶放棄一點隱私,因此,你需要提供明確且平等的利益以換取訪問。運行時權限允許你在用戶更了解你請求權限的原因和授予權限的好處時選擇合適的時間請求權限。Android實現它們的方式使得以正確的方式請求它們變得十分重要。

運行時權限模型有利于保護用戶的隱私,當你的應用程序請求權限時,Android會顯示一個對話框讓用戶接受或拒絕它,第一次請求權限時對話框不會顯示“不再詢問”復選框,只會在用戶至少一次拒絕權限請求后顯示它,你可以檢查之前是否被拒絕過,并明智的決定在何時提供更多教育。

從Android 11開始,如果用戶在使用應用的過程中多次拒絕某項特定的權限,那么在你的應用再次請求該權限時,用戶將不會看到系統權限對話框。該操作表示用戶希望“不再詢問”。

你無需過度防御,例如在實際請求權限之前你始終通過預許可(預授權)來衡量用戶授予權限的可能性,本質上是請求兩次,這種雙重提示可能是不必要且煩人的,你可以通過在正確的時間以正確的方式詢問來達到同樣的效果。

Material Design分解了在兩個維度上請求權限的不同方法。首先權限對你的應用程序的運行有多重要?其次,你請求它的原因有多清晰?根據這兩個因素,建議你采用不同的方法來請求權限。

圖片來源:Material Design

一、預先請求權限(Ask up-front)

如果某項權限對應用程序運行至關重要,并且顯而易見為什么需要請求它。例如日歷應用,拒絕日歷權限會使應用程序無法運行,并且用戶顯然知道日歷應用的用途以及請求日歷權限的原因,因此不需要用任何不必要的解釋來打擾用戶,只需在用戶首次啟動應用時立即請求它即可。

預先請求權限

二、預先教育(Educate up-front)

如果某項權限對應用至關重要,但請求它的原因不是很清晰。例如信貸應用,為了準確評估用戶的信貸資格、償還能力和防范反欺詐,通訊錄權限、通話記錄權限、位置權限對于風控而言非常重要,建議請求權限之前對用戶進行教育。

預先教育

三、使用場景中請求權限(Ask in context)

如果應用中的某項次要功能需要權限,但請求它的原因很清晰,建議你在使用場景中請求權限。例如筆記應用允許用戶使用語音或音頻創建筆記,那么很明顯為什么此功能需要麥克風權限,無需過早的請求它,以免用戶負擔過重,最好等到用戶嘗試使用該功能時,因為用戶更有可能允許符合其預期的權限請求。

使用場景中請求權限

四、結合使用場景進行教育(Educate in context)

如果應用中的某項次要功能需要權限,并且請求他的原因不是很清晰,建議你結合使用場景進行教育。例如筆記應用允許用戶與朋友協作,那么請求聯系人權限可能是合理的,但它不是顯而易見的,當用戶調用該功能時,解釋應用獲得聯系人權限后可為用戶提供哪些好處,比如自動填充郵件地址,然后才請求聯系人權限讓用戶授予它。

結合使用場景進行教育

五、處理權限請求遭拒情況

通過使用正確的方法,用戶應該清楚應用請求權限的原因以及應用獲得權限后可以為他們提供哪些好處。然而,這并不意味著用戶一定會授予權限。如果用戶拒絕了權限請求,建議采用以下做法:

  • 在應用界面中突出顯示因為沒有獲得特定權限而受限的功能所在的具體部分,例如在原本用于顯示該功能的結果或數據的位置顯示一條消息,讓用戶知道因缺少權限而無法使用該功能,幫助用戶在權限和功能之間建立心理聯系。
  • 不要阻止界面顯示,不要全屏警告消息,讓用戶根本無法繼續使用應用。即使在權限請求遭拒后,應用也應盡可能提供最佳的用戶體驗。例如即使麥克風使用權限請求遭拒,仍應全面提高文本功能的易用性。
  • 用戶可能已經選中了“不再詢問“復選框,應用可能會在用戶未看到權限請求對話框的情況下受到拒絕,此時應用應該提供一個鏈接,鏈接到設備設置中用戶可以打開權限的具體位置。

六、盡量減少權限請求

在應用中聲明權限之前,請先考慮是否需要這樣做,或者是否有替代方法可以在應用中支持該功能。因為如果應用聲明權限,那么每當用戶使用需要運行時權限的功能時,應用便不得不中斷用戶的操作,請求相應權限。然后,用戶必須做出決定。如果用戶不能理解您的應用為何請求特定權限,可能就會拒絕授予該權限,甚至卸載應用。下面介紹幾個可以在不聲明任何權限的情況下實現的用例:

1. 拍攝照片/錄制視頻

Android為應用提供了相互通信的功能,讓你可以將任務委托給其他應用。例如,如果你希望允許用拍照,但它不是應用的核心部分,可以考慮使用Intent請求相機應用拍攝照片并將其分享給你的應用,這樣就不需要CAMERA權限。

2. 自動輸入動態短信驗證碼

雙因素身份驗證流程中,動態短信驗證碼作為第二校驗因素時,使用SMS Retriever API(短信檢索器)可以讓應用自動執行用戶身份驗證,不需要用戶手動輸入驗證碼,不需要READ_SMS權限。

以上就是Android運行時權限模型和請求權限的一些方法,你可以針對何時以及如何請求權限設計完美的流程,從而最大程度的提高用戶授予權限的可能性。

本文由@張楚 原創發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自 Unsplash,基于 CC0 協議。

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 干貨

    來自廣東 回復