Requesting Permission
請求使用者允許訪問個人資料的權限。
⚡️ 相關資訊
Intro
介紹
當應用程式需要取得敏感資料時,都需要向使用者要求授權,並且讓使用者自行選擇接受或拒絕。若應用程式未取得相關授權,將無法發揮完整功能,例如:使用者沒有開啟相機的使用權限,則無法使用拍照功能。
所以要求權限的流程必須盡可能符合設計規範,以降低使用者對於要求敏感資料的抗拒不安全感,進而提升獲得完整體驗的機會。
Basic principles
基本原則
在設計權限流程時,務必遵守以下基本原則,避免違反平台規定。
1. 僅於必要時向使用者索取權限
使用者對於個人資訊的請求非常敏感,請確認應用程式索取的權限為必要的最小權限。
2. 在使用者「開始」與需要這項權限的功能互動時,再要求與情境相關的權限
避免在啟動應用程式時馬上要求所有權限,除非此權限為執行應用程式的主要功能,否則應該在使用者容易理解「為何需要取得的時機點」詢問。
舉例說明:當使用者需要使用導航功能時,再向使用者要求位置授權,因為此時的場景容易讓使用者了解允許授權後將獲得什麼好處。
3. 教育使用者為什麼需要此權限
若此權限較難讓使用者直覺聯想索取原因,需要清楚的說明此權限包含什麼資料、將應用於何處、授權後將可以達成什麼目的,例如:應用程式在使用者開啟語音直播時要求通話權限,使用者較難了解目的是來電提醒,若此時突然顯示系統索取權限的對話框,將讓使用者感到困惑。
說明文字盡量使用直接、簡短的語句減輕閱讀負擔,切勿使用祈使句、命令句。
說明的時間點應發生於:
- 應用程式索取權限前
- 使用者拒絕後,且再次觸發請求授權時
4. 使用者拒絕授權後,不應立即要求使用者前往設定頁修改設定,或強迫使用者中斷使用應用程式
當使用者拒絕授權後,應用程式仍應盡可能提供最佳使用者體驗,例如:當使用者拒絕,仍讓使用者能夠繼續使用應用程式,可參考 Android Developers Guide 所提供的作法:
- 引導使用者的注意力。 醒目顯示應用程式 UI 中,因為應用程式未擁有必要權限而造成功能受限的特定部分。以下提供幾種可能的做法:
- 在該功能的結果或資料應該出現的位置顯示相關訊息。
- 顯示包含錯誤圖示和顏色的不同按鈕。
- 提供清楚明確的說明,不要顯示一般訊息。請改為明確因應用程式未擁有必要權限而無法使用哪些功能。
- 不要封鎖使用者介面。也就是說,不要顯示全螢幕的警告訊息,以致使用者完全無法繼續使用您的應用程式。
5. 使用者拒絕授權後,提供重新觸發請求授權的方法
當使用者拒絕授權後,應用程式需保留觸發請求授權的路徑,並引導使用者至設定頁面重新設定。
使用者拒絕授權後,再次觸發該功能時,請勿重複呼叫系統請求權限,應以其他手段(KKBOX App 目前使用系統的 Dialog 元件)和使用者說明為什麼需要此權限,提升授權意願。
Types of Buttons
按鈕類型
當應用程式呼叫系統向使用者索取權限時,索取權限的對話框將提供「預設對應的按鈕」,按鈕點擊後的規則可參考下表:
一律允許 / 允許 | 位置權限:應用程式隨時都能取得位置權限,即使你當下並未使用該應用程式也一樣。
麥克風/相機/其他:每次使用指定功能時,應用程式可以直接取得上述權限。 |
僅在使用該應用程式時允許 | While using the app
應用程式只有在你使用時,才能取得上述權限。 |
僅允許一次 / 下次詢問 | Only this time
應用程式每次觸發特定功能時,都會要求取得上述權限,而且在你關閉應用程式前都可使用這些權限。 |
不允許 / 永不 | Deny
應用程式即使在使用中,也無法取得上述權限。再次觸發未授權功能時,將顯示說明對話框,並提供重設路徑。 |
Changelog
Date | Version | Notes | Chapters | Person |
---|---|---|---|---|
June 26, 2023 | 1.27 | ・新增 Requesting Permission 草稿 | Requesting Permission |