我們在開發 Android 時,不僅著重於協助使用者善用各項創新功能,也持續將維護使用者的安全性和隱私權當做首要任務。請使用本頁面的檢查清單,做為常見的隱私權指南和最佳做法來源。
本頁說明的一些最佳做法也會列在一覽表中。
檢查清單:盡可能減少權限要求
請秉持資訊公開的原則,並為應用程式使用者提供控制選項,以獲得使用者的信任。
- 要求功能所需的最低權限:為應用程式進行重大變更時,請參閱「要求的權限」,確認應用程式功能仍需要用到這些權限。
- Android 常會在新版本中導入重視隱私權的資料存取方式,這樣一來,應用程式不需要權限也能取得資料。詳情請參閱「評估應用程式是否需要宣告權限」。
- 如果您透過 Google Play 發布應用程式,則可以使用 Android Vitals 取得拒絕授權的應用程式使用者比例。如果大多數使用者常拒絕授予必要權限,請根據這項資料重新評估此類功能的設計。
- 解釋應用程式中的功能為何需要特定權限:請按照建議流程操作。只在必要時才提出權限要求,而不是一啟動應用程式就要求權限,使用者就會比較清楚應用程式為何需要權限。
- 請注意,使用者或系統可能會多次拒絕授予權限:Android 尊重使用者的選擇,因此會忽略同一個應用程式提出的權限要求。
- 在沒有權限的情況下優雅降級:當使用者拒絕或撤銷授權時,應用程式應該優雅降級,例如在使用者未授予麥克風權限時停用語音輸入功能。
- 移除不必要的存取權:更新應用程式時,請針對應用程式不再需要的執行階段權限,移除應用程式的存取權。
- 瞭解 SDK 或程式庫需要的權限:如果您使用的 SDK 或程式庫會存取受危險權限保護的資料,使用者通常會認為是您的應用程式需要相應權限。請務必瞭解 SDK 需要哪些權限及其原因。
檢查清單:盡可能避免使用位置資料
使用者的位置資料屬於私密資訊,請盡量避免使用。如果您必須使用定位服務,請採取適當措施,盡可能避免收集位置資料。請使用下列檢查清單,讓應用程式盡量不使用位置資料。
- 在沒有位置資料的情況下優雅降級:在 Android 10 (API 級別 29) 以上版本中,使用者可以將應用程式限制為只在使用期間才能要求位置存取權。設計應用程式時,要讓應用程式能夠在沒有「一律允許」位置存取權時優雅降級。
- 使用附近的藍牙或 Wi-Fi 裝置:如果應用程式需要使用藍牙或 Wi-Fi,將使用者的裝置與鄰近裝置配對,請使用不需要位置存取權的隨附裝置管理工具。進一步瞭解藍牙和 Wi-Fi 權限。
- 盡可能使用概略定位精確度:查看應用程式所需的位置精細程度。只要取得概略的位置存取權,就足以達成大部分的位置資訊相關用途。
- 必要時才在背景存取位置資訊:如果應用程式需要背景位置資訊 (例如使用地理圍欄功能),請讓使用者明確知道應用程式在背景存取這項資訊。進一步瞭解使用背景位置資訊的注意事項。
- 在使用者看得到應用程式時存取位置資料:這可讓使用者進一步瞭解應用程式要求存取位置資訊的原因。
- 請勿從背景啟動前景服務:建議您改為透過通知啟動應用程式,然後在應用程式 UI 處於可見狀態時執行位置資訊程式碼。如果應用程式必須保留位置存取權,才能在使用者退出應用程式的 UI 後,繼續執行使用者啟動的工作,請先啟動前景服務再進入背景。
檢查清單:安全地處理資料
注意:如要進一步瞭解哪些資料屬於私密資料,請參閱 Google Play 開發人員政策中心的使用者資料文章頁面。
請以公開透明且安全的方式處理私密資料。建議您使用下列檢查清單做為指南,在應用程式中以更安全的方式處理使用者資料。
稽核資料存取權:在 Android 11 (API 級別 30) 以上版本中,執行資料存取稽核,瞭解您的應用程式及其依附元件如何存取使用者的私人資料,並取得深入分析結果,更輕鬆地找出非預期的資料存取作業。
宣告套件瀏覽權限需求:如果應用程式指定 Android 11 以上版本,根據預設,您的應用程式不具備特定應用程式的瀏覽權限。請參閱這篇文章,瞭解如何讓您的應用程式取得其他應用程式的瀏覽權限。
支援限定範圍儲存空間:為了讓使用者進一步控管檔案,並避免檔案過於散亂,若應用程式指定 Android 10 (API 級別 29) 以上版本,會自動取得限定範圍外部儲存空間的存取權,或稱為限定範圍儲存空間。這類應用程式只能存取自行建立的目錄和媒體。瞭解如何遷移至限定範圍儲存空間。
使用可由使用者重設的 ID:為了保護使用者的隱私權,請使用符合您的應用程式用途且最嚴格的 ID (請參閱這份文件中的可重設 ID 檢查清單)。
提供醒目揭露事項與同意聲明:遵循 Google Play 使用者資料政策最佳做法,向使用者提供醒目揭露事項和同意聲明要求。
聲明應用程式的資料使用行為:妥善填寫 Google Play 管理中心資料的安全性表單,說明應用程式會收集與分享哪些類型的使用者資料。
將私密資料安全地傳送至其他應用程式:使用明確意圖,將私密資料傳送至其他應用程式。請授予一次性資料存取權,進一步限制其他應用程式的存取權。
請勿在 Logcat 訊息或記錄檔中加入私密資料:瞭解詳情。
檢查清單:使用可重設的 ID
請尊重使用者的隱私權,並使用可重設的 ID。詳情請參閱「專屬 ID 的最佳做法」。
請勿存取 IMEI 或裝置序號:這兩項為永久 ID。如果應用程式指定 Android 10 (API 級別 29) 以上版本,就會在嘗試存取這些 ID 時導致
SecurityException
。只將廣告 ID 用於剖析使用者或廣告用途:請一律尊重使用者的個人化廣告追蹤選擇。重要事項:此為 Google Play 的必要條件。
使用私密儲存的 GUID:對於絕大多數的非廣告用途,請使用採取應用程式限定範圍的私密儲存全域專屬 ID (GUID)。
針對您擁有的應用程式使用 SSAID:使用安全設定 Android ID (SSAID) 在您擁有的應用程式之間共用狀態,而不必要求使用者登入帳戶。進一步瞭解如何在應用程式之間儲存未登入的使用者偏好。
檢查清單:支援面向使用者的隱私權功能
請以公開透明且安全的方式處理私密資料。請使用下列檢查清單做為指南,確保應用程式能安全地處理使用者資料。
提供存取私密資訊的理由:在 Android 12 (API 級別 31) 以上版本,使用者可以在系統設定中查看隱私資訊主頁,詳細瞭解應用程式存取使用者位置、麥克風與相機資訊的時間點。進一步瞭解如何將這份說明提供給使用者。
提示使用者解除應用程式休眠狀態:如果使用者連續數個月未使用指定 Android 11 (API 級別 30) 以上版本的應用程式,系統會該應用程式設為休眠狀態。如想瞭解應用程式休眠狀態,以及如何引導使用者解除該狀態,請參閱這篇文章。
將私密資料安全地傳送至其他應用程式:如需將私密資料傳送至其他應用程式,請使用明確意圖,並授予一次性資料存取權,進一步限制其他應用程式存取資料。
以視覺化方式說明應用程式正在擷取音訊或圖像:即使應用程式在前景運作,也要顯示即時指標,讓使用者瞭解應用程式正在使用麥克風或相機擷取內容。請注意,Android 9 (API 級別 28) 以上版本不允許應用程式在背景運作時存取麥克風或相機。
隱私權一覽表
隱私權一覽表可讓您快速瞭解 Android 中一些最實用的隱私權 API,以及設計應用程式時應特別留意的最佳做法。
這份一覽表也能以 PDF 格式下載: