0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹關(guān)于Android在隱私方面的變化和最佳實(shí)踐

哆啦安全 ? 來(lái)源:哆啦安全 ? 作者:哆啦安全 ? 2022-10-26 10:50 ? 次閱讀

隨著信息化技術(shù)的普及,移動(dòng)應(yīng)用在迅速改變著人們的生活方式。作為數(shù)字生活的載體,智能設(shè)備的演進(jìn)帶動(dòng)了數(shù)據(jù)處理技術(shù)的不斷成熟,這使得應(yīng)用對(duì)用戶信息的掌控日趨深入。與此同時(shí),人們的隱私保護(hù)意識(shí)也越來(lái)越強(qiáng),希望在享受移動(dòng)應(yīng)用帶來(lái)的無(wú)限便利之余,也能保護(hù)自己的隱私不受侵犯。因此,人們會(huì)更青睞那些能從操作系統(tǒng)層面對(duì)用戶和數(shù)據(jù)提供保護(hù)的平臺(tái)。

本文將向您介紹關(guān)于 Android 在隱私方面的變化和最佳實(shí)踐,幫助您主動(dòng)為用戶提供優(yōu)秀的隱私保護(hù)。同時(shí)我們還有幾個(gè)關(guān)于未來(lái) Android 版本的概念構(gòu)想與您分享。

△ 主動(dòng)為用戶提供全面的隱私保護(hù)

隱私保護(hù)三原則

7d283cae-54c7-11ed-a3b6-dac502259ad0.png

△ 隱私保護(hù)的三個(gè)原則

我們?cè)谠O(shè)計(jì) Android 之初就充分考慮了對(duì)用戶隱私權(quán)的保護(hù),并且在最近的版本中將這一理念進(jìn)一步強(qiáng)化,進(jìn)而在保護(hù)用戶信息安全方面取得了更加顯著的進(jìn)步。我們一如既往地關(guān)心用戶的隱私權(quán),這份執(zhí)著背后是以下三個(gè)核心原則:

提升數(shù)據(jù)訪問(wèn)透明度: 讓用戶知道應(yīng)用在什么時(shí)間訪問(wèn)了哪些數(shù)據(jù);

簡(jiǎn)化用戶控制隱私訪問(wèn)的方式: 讓用戶方便地控制應(yīng)用能訪問(wèn)更多或更少的用戶數(shù)據(jù);

專注最小化數(shù)據(jù)訪問(wèn): 去除不必要的數(shù)據(jù)訪問(wèn),減少應(yīng)用的權(quán)限范圍,避免應(yīng)用泄露用戶的數(shù)據(jù)。

隱私保護(hù)最佳實(shí)踐

7d7c79b8-54c7-11ed-a3b6-dac502259ad0.png

△ 集成隱私保護(hù)的三個(gè)最佳實(shí)踐

基于隱私保護(hù)三個(gè)核心原則,我們會(huì)持續(xù)為您提供各種各樣的工具和指導(dǎo),幫助您在應(yīng)用中高效地集成隱私保護(hù)功能。這里要向您分享的是在移動(dòng)應(yīng)用開(kāi)發(fā)中可以考慮的三個(gè)最佳實(shí)踐,您會(huì)了解如何提升隱私訪問(wèn)的透明度,了解如何在尊重用戶選擇權(quán)的前提下提供隱私訪問(wèn)的選項(xiàng),以及了解如何通過(guò)最小化隱私訪問(wèn)盡可能減少不必要用戶數(shù)據(jù)的獲取。

關(guān)注數(shù)據(jù)訪問(wèn)

您需要考慮的第一個(gè)最佳實(shí)踐是要仔細(xì)斟酌應(yīng)用對(duì)用戶數(shù)據(jù)的訪問(wèn)。一方面是由于 Android 12 讓用戶更直觀地看到自己的隱私如何被訪問(wèn),另一方面則是出于您尊重用戶意愿的考量。

應(yīng)用訪問(wèn)傳感器時(shí)的系統(tǒng)提示

7da57764-54c7-11ed-a3b6-dac502259ad0.gif

△ Android 提升了應(yīng)用訪問(wèn)麥克風(fēng)和攝像頭時(shí)的透明度

隨著 Android 的透明度越來(lái)越高,您也越來(lái)越需要關(guān)注自己的應(yīng)用何時(shí)對(duì)用戶數(shù)據(jù)進(jìn)行了訪問(wèn)。Android 12 讓用戶更清楚地知曉應(yīng)用何時(shí)訪問(wèn)了麥克風(fēng)和攝像頭。每當(dāng)麥克風(fēng)或攝像頭被訪問(wèn)時(shí),用戶可以通過(guò)從屏幕右上角下拉打開(kāi)快捷設(shè)置,然后點(diǎn)擊對(duì)應(yīng)的指示圖標(biāo)來(lái)實(shí)時(shí)查看是哪些應(yīng)用在訪問(wèn)數(shù)據(jù)。如果用戶發(fā)現(xiàn)自己對(duì)此次訪問(wèn)并不知情,可以很方便地跳轉(zhuǎn)到應(yīng)用的權(quán)限設(shè)置界面并撤銷相關(guān)權(quán)限。所以需要您仔細(xì)審查應(yīng)用中涉及麥克風(fēng)、攝像頭訪問(wèn)的代碼,移除那些意外的訪問(wèn)操作。例如,您應(yīng)該確保在用戶觸發(fā)需要訪問(wèn)有關(guān)傳感器的功能前,應(yīng)用不會(huì)去獲取這些設(shè)備的數(shù)據(jù)。

應(yīng)用的隱私數(shù)據(jù)訪問(wèn)記錄

我們常常收到用戶的反饋,他們希望了解應(yīng)用究竟使用了哪些數(shù)據(jù)。對(duì)此我們做出了一些努力,全新的隱私信息中心讓用戶可以通過(guò)一個(gè)簡(jiǎn)單清晰的時(shí)間線視圖來(lái)了解到過(guò)去 24 小時(shí)中,哪些應(yīng)用訪問(wèn)了設(shè)備的麥克風(fēng)、攝像頭和地理位置數(shù)據(jù)。另外,用戶還可以查看到應(yīng)用是否在過(guò)去 24 小時(shí)里使用其他運(yùn)行時(shí)權(quán)限訪問(wèn)過(guò)相關(guān)數(shù)據(jù)。

7ded32f2-54c7-11ed-a3b6-dac502259ad0.gif

△ 24 小時(shí)內(nèi)的隱私訪問(wèn)情況

建議您對(duì)應(yīng)用中相關(guān)的代碼路徑進(jìn)行仔細(xì)審查,確保對(duì)每一處隱私數(shù)據(jù)的訪問(wèn)都能做合理的解釋說(shuō)明。由于使用到的第三方 SDK 也會(huì)被當(dāng)作您應(yīng)用的一部分進(jìn)行統(tǒng)計(jì),所以需要為它們的隱私訪問(wèn)提供正當(dāng)?shù)挠美f(shuō)明。

應(yīng)用的數(shù)據(jù)使用說(shuō)明

7edf8368-54c7-11ed-a3b6-dac502259ad0.png

△Play 商店新增的數(shù)據(jù)安全信息

用戶非常關(guān)心您的應(yīng)用是出于怎樣的原因訪問(wèn)了隱私數(shù)據(jù),所以當(dāng)用戶在 Play 商店瀏覽應(yīng)用時(shí),會(huì)看到一個(gè)專門的數(shù)據(jù)安全條款,它為用戶提供了直觀易懂的應(yīng)用數(shù)據(jù)使用的相關(guān)信息,從而幫助用戶在知情的前提下自主決定要安裝哪些應(yīng)用。這樣一來(lái),用戶會(huì)有更多的安全感,并且更能相信開(kāi)發(fā)者們會(huì)負(fù)責(zé)任地使用用戶數(shù)據(jù)。關(guān)于如何在 Play 商店的數(shù)據(jù)安全條款提供恰當(dāng)?shù)恼f(shuō)明,您可以查看視頻:為 Google Play 中的 "數(shù)據(jù)安全" 條款做好準(zhǔn)備:

https://www.bilibili.com/video/BV1xv4y137dL/

應(yīng)用讀取剪貼板時(shí)的通知

7f1a6bf4-54c7-11ed-a3b6-dac502259ad0.gif

△應(yīng)用讀取剪貼板時(shí)的通知消息

相信您一定有過(guò)這樣的經(jīng)驗(yàn),好友向您發(fā)送了一條消息,比如用戶名和密碼,您常常會(huì)復(fù)制這些信息,然后粘貼到另一個(gè)應(yīng)用中使用。在這個(gè)過(guò)程中,這些關(guān)鍵數(shù)據(jù)會(huì)被存放在剪貼板中,任何應(yīng)用都可以讀取這些數(shù)據(jù),產(chǎn)生了潛在的隱私泄露風(fēng)險(xiǎn)。

每當(dāng)有應(yīng)用從剪貼板讀取數(shù)據(jù)時(shí),Android 都會(huì)通知用戶。每當(dāng)應(yīng)用調(diào)用 ClipboardManager#getPrimaryClip() 方法時(shí),Android 會(huì)判斷寫(xiě)入和讀取剪貼板數(shù)據(jù)的是不是同一個(gè)應(yīng)用,當(dāng)兩者來(lái)源不同時(shí),系統(tǒng)會(huì)通過(guò)一個(gè)消息框來(lái)提示用戶;當(dāng)兩者來(lái)自同一個(gè)應(yīng)用時(shí),則不會(huì)產(chǎn)生這樣的提示。所以我們建議您的應(yīng)用首先調(diào)用 ClipboardManager#getPrimaryClipDescription() 方法來(lái)獲取剪貼板中數(shù)據(jù)的基本信息,并根據(jù)其類型判斷是否需要進(jìn)一步讀取,從而最大限度減少對(duì)剪貼板數(shù)據(jù)的訪問(wèn)。另外,我們還建議您不要隨意訪問(wèn)剪貼板,如果有必要,也應(yīng)該在用戶知情和許可的前提下進(jìn)行。

為更加透明的隱私訪問(wèn)做好準(zhǔn)備

為了更好支持 Android 12 帶來(lái)的隱私透明特性,我們建議您仔細(xì)審查應(yīng)用的代碼是否還存在意外的隱私訪問(wèn)操作。您可以借助審計(jì) (auditing) API 來(lái)更好地發(fā)現(xiàn)潛在的隱私數(shù)據(jù)讀取操作以及第三方 SDK 對(duì)隱私數(shù)據(jù)的訪問(wèn)。這個(gè) API 可以在您的應(yīng)用訪問(wèn)敏感數(shù)據(jù)時(shí)調(diào)用一個(gè)應(yīng)用內(nèi)的回調(diào)函數(shù),并向其提供所訪問(wèn)的數(shù)據(jù)類型,這樣您就可以輕松地發(fā)現(xiàn)應(yīng)用在何時(shí)、何種情況下讀取了隱私數(shù)據(jù)。

7f53e848-54c7-11ed-a3b6-dac502259ad0.png



△添加數(shù)據(jù)訪問(wèn)操作的回調(diào)函數(shù)

您也可以通過(guò)權(quán)限 intent API 來(lái)向用戶說(shuō)明為什么您的應(yīng)用需要訪問(wèn)地理位置、攝像頭和麥克風(fēng),從而幫助他們理解和判斷是否要給予這些權(quán)限。您通過(guò)此 API 提供的這些信息將會(huì)在隱私訪問(wèn)信息面板及應(yīng)用的權(quán)限管理界面中向用戶展示。

 
 

 
  
    
    
  
△添加權(quán)限 intent

上面的代碼展示了您添加權(quán)限 intent 時(shí)需要進(jìn)行的配置。這段代碼在您的應(yīng)用中添加了一個(gè) activity,它可以在啟動(dòng)時(shí)告知用戶為什么要訪問(wèn)數(shù)據(jù)。您需要把 android:permission 屬性設(shè)置為 START_VIEW_PERMISSION_USAGE。如果您的應(yīng)用是針對(duì) Android 12 進(jìn)行構(gòu)建的,那么還需要添加 android:exported="true" 屬性。接著添加一個(gè) intent-filter 標(biāo)簽,隨后根據(jù)您的需要,分別將 android.intent.action.VIEW_PERMISSION_USAGE (在應(yīng)用的權(quán)限管理界面顯示) 和 android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD (在隱私訪問(wèn)面板顯示) 添加到這個(gè)標(biāo)簽里。這樣一來(lái),用戶就可以在您的應(yīng)用名稱旁看到一個(gè)與應(yīng)用的 intent-filter 對(duì)應(yīng)的圖標(biāo)。如果需要詳細(xì)了解數(shù)據(jù)訪問(wèn)審計(jì) API 和權(quán)限 intent 的更多內(nèi)容,請(qǐng)參閱:使用隱私信息中心提高用戶透明度。

綜上所述,在開(kāi)發(fā)應(yīng)用時(shí),對(duì)于數(shù)據(jù)訪問(wèn)需要注意以下幾點(diǎn):

只有在必要時(shí)才訪問(wèn)隱私數(shù)據(jù)。不必要的數(shù)據(jù)訪問(wèn)不僅會(huì)讓用戶感到困惑,還會(huì)增加隱私泄露的風(fēng)險(xiǎn);

注意引入第三方庫(kù)時(shí)添加的權(quán)限聲明。您可以通過(guò)合并 manifest 來(lái)查看引入的第三方庫(kù)聲明了哪些權(quán)限。別讓引入的 SDK 和第三方庫(kù)導(dǎo)致您應(yīng)用被下架!這篇文章為您提供了更多的參考信息;

切勿過(guò)度訪問(wèn)用戶數(shù)據(jù)。對(duì)用戶隱私數(shù)據(jù)的讀取如果超過(guò)了用戶使用的需要,就是對(duì)用戶知情權(quán)和控制權(quán)的侵犯。

尊重用戶選擇

我們要分享的第二個(gè)最佳實(shí)踐關(guān)乎著用戶的選擇。Android 用戶可以自行掌控哪些應(yīng)用可以訪問(wèn)他們的敏感數(shù)據(jù),以及這些數(shù)據(jù)被應(yīng)用訪問(wèn)的程度。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),掌握好這個(gè)度非常重要。

研究表明,用戶對(duì)應(yīng)用需要訪問(wèn)數(shù)據(jù)的原因了解得越充分,那么他們認(rèn)可這些訪問(wèn)的可能性就越大。您需要通過(guò)提供安全的默認(rèn)參數(shù)來(lái)平衡用戶的掌控權(quán)和應(yīng)用的訪問(wèn)權(quán)限,所以您應(yīng)該向用戶提供一些易于理解的選項(xiàng),并尊重他們的意志。

更細(xì)致的位置權(quán)限選項(xiàng)

7f938606-54c7-11ed-a3b6-dac502259ad0.gif

△選擇大致位置能讓?xiě)?yīng)用減少訪問(wèn)用戶的位置信息

我們?cè)?Android 12 中引入了粒度更細(xì)的位置權(quán)限選項(xiàng),使得用戶可以自行決定是否只向應(yīng)用提供粗略的位置信息。我們建議您仔細(xì)檢查應(yīng)用中所有需要訪問(wèn)位置信息的用例,如果精確的定位不是必須的,請(qǐng)改為申請(qǐng) ACCESS_COARSE_LOCATION 權(quán)限。

無(wú)論何種情況下,您都應(yīng)該具體地向用戶說(shuō)明為什么需要訪問(wèn)位置信息,并且按照具體的精度需求逐漸向用戶申請(qǐng)更精確定位信息的訪問(wèn)權(quán)限。同時(shí),您需要考慮到用戶僅允許應(yīng)用獲取粗略位置的情況,不能因?yàn)槲恢眯畔⒉痪_就拒絕讓用戶繼續(xù)使用。

如下示例代碼包含了兩個(gè)功能,其中一個(gè)是只需要訪問(wèn)大概位置,而另一個(gè)則是需要獲取精確定位。當(dāng)用戶給予應(yīng)用獲取大致位置的權(quán)限時(shí),您需要通過(guò) shouldShowRequestPermissionRationale API 來(lái)檢查是否需要向用戶顯示必要的權(quán)限申請(qǐng)說(shuō)明。如果返回了 true,則需要展示您的說(shuō)明,同時(shí)顯示申請(qǐng)大致位置的彈框 (請(qǐng)求 ACCESS_COARSE_LOCATION 權(quán)限)。

// 請(qǐng)求 ACCESS_COARSE_LOCATION 權(quán)限
requestPermissions(
  Context,
  arrayOf(Manifest.permission.ACCESS_COARSE_LOCATION),
  REQUEST_CODE
)

△請(qǐng)求 ACCESS_COARSE_LOCATION 權(quán)限

if (grantResults[1] == PackageManager.PERMISSION_GRANTED) {
  // ACCESS_COARSE_LOCATION 權(quán)限已獲授權(quán)。
}

△處理請(qǐng)求的結(jié)果

當(dāng)用戶以后用到需要獲取精確定位的功能時(shí),您就可以通過(guò)向用戶顯示申請(qǐng)更精確位置信息的彈框來(lái)獲得 ACCESS_FINE_LOCATION 權(quán)限了。您同樣需要確保用戶了解您的位置用例后再發(fā)起請(qǐng)求。

// 請(qǐng)求 ACCESS_FINE_LOCATION 權(quán)限
requestPermissions(
  Context,
  arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
  REQUEST_CODE
)

△請(qǐng)求 ACCESS_FINE_LOCATION 權(quán)限

if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  // ACCESS_FINE_LOCATION 權(quán)限已獲授權(quán)。
}
△處理請(qǐng)求的結(jié)果

全局權(quán)限開(kāi)關(guān)

Android 12 中引入了這樣兩個(gè)開(kāi)關(guān),分別對(duì)應(yīng)攝像頭和麥克風(fēng)的全局訪問(wèn):

8019db34-54c7-11ed-a3b6-dac502259ad0.png



△麥克風(fēng)和攝像頭的全局開(kāi)關(guān)

這兩個(gè)開(kāi)關(guān)允許用戶迅速切斷整臺(tái)設(shè)備上所有應(yīng)用對(duì)攝像頭或者麥克風(fēng)的訪問(wèn)。如果用戶在應(yīng)用中使用了某個(gè)需要訪問(wèn)攝像頭、麥克風(fēng)的功能,那么系統(tǒng)將會(huì)向用戶詢問(wèn)是否需要立即開(kāi)放傳感器的訪問(wèn)。這組開(kāi)關(guān)與直接拒絕訪問(wèn)權(quán)限是不同的,因?yàn)楂@取訪問(wèn)權(quán)的整個(gè)過(guò)程是由系統(tǒng)來(lái)處理的,提醒用戶啟用設(shè)備也是由系統(tǒng)展示的,應(yīng)用無(wú)需進(jìn)行任何額外的操作。

此外值得一提的是,我們?cè)谶@次更新中還增加了對(duì)運(yùn)動(dòng)傳感器采樣率的限制 (200Hz 以內(nèi))。

通知顯示權(quán)限

我們常常聽(tīng)到用戶關(guān)于設(shè)備上通知過(guò)多的抱怨,所以我們?cè)谛掳姹局?,要求?yīng)用需要向用戶申請(qǐng)通知顯示權(quán)限,只有當(dāng)用戶希望或允許收到通知時(shí),應(yīng)用才可以向用戶發(fā)送通知。

80701148-54c7-11ed-a3b6-dac502259ad0.png



△限制通知權(quán)限能降低通知消息的干擾

如果您的應(yīng)用需要向用戶發(fā)送通知,請(qǐng)記得在清單文件中添加 POST_NOTIFICATIONS 權(quán)限的聲明。下面的代碼展示了如何申請(qǐng)通知的權(quán)限:

// 請(qǐng)求權(quán)限后向用戶發(fā)送通知
requestPermissions(
  Context,
  arrayOf(Manifest.permission.POST_NOTIFICATIONS),
  REQUEST_CODE
)
△請(qǐng)求通知權(quán)限

您可以通過(guò) Notification.areNotificationsEnabled API 或者PermissionChecker 來(lái)檢查應(yīng)用是否已經(jīng)獲得了通知權(quán)限。申請(qǐng)通知權(quán)限的方法與申請(qǐng)其他權(quán)限相同,您不需要做額外的調(diào)整。 這里給您補(bǔ)充了一些需要注意的事項(xiàng):

在訪問(wèn)數(shù)據(jù)前,讓用戶充分了解您讀取數(shù)據(jù)的原因;

做好用戶和系統(tǒng)拒絕權(quán)限時(shí)的操作,當(dāng)用戶二次拒絕時(shí),您應(yīng)該尊重用戶的意愿;

按需逐級(jí)獲取隱私數(shù)據(jù),不要一次性申請(qǐng)所有權(quán)限;

當(dāng)用戶拒絕或是撤銷某項(xiàng)權(quán)限時(shí),您需要讓?xiě)?yīng)用能無(wú)縫回退到無(wú)需權(quán)限即可運(yùn)行的狀態(tài)。

最大程度減少權(quán)限使用

第三個(gè)最佳實(shí)踐是最大程度減少權(quán)限的使用。一方面您應(yīng)當(dāng)對(duì)用戶的意愿和選擇保持尊重,另一方面您還可以使用 Android 的替代 API,在簡(jiǎn)化敏感數(shù)據(jù)訪問(wèn)的同時(shí)提供更好的隱私控制。以下幾個(gè)方案可以幫助您最大限度減少數(shù)據(jù)訪問(wèn)。

使用新的附近設(shè)備訪問(wèn)權(quán)限

可穿戴設(shè)備在最近幾年發(fā)展迅猛,大量的應(yīng)用需要與這些設(shè)備進(jìn)行交互。在以前,應(yīng)用必須先申請(qǐng)位置訪問(wèn)權(quán)限才能與配套設(shè)備進(jìn)行藍(lán)牙連接。開(kāi)發(fā)者們向我們反饋了這種不恰當(dāng)?shù)脑O(shè)計(jì),尤其是當(dāng)應(yīng)用只需要獲取藍(lán)牙訪問(wèn)權(quán)限而不需要獲得設(shè)備位置的時(shí)候。過(guò)度的權(quán)限申請(qǐng)也使得用戶對(duì)應(yīng)用的行為正當(dāng)性產(chǎn)生懷疑,這些反饋敦促著我們改進(jìn)權(quán)限的對(duì)應(yīng)關(guān)系。

80a04070-54c7-11ed-a3b6-dac502259ad0.png



△訪問(wèn)附近設(shè)備的權(quán)限

構(gòu)建目標(biāo)為 API 30 及以前版本 Android 的應(yīng)用,需要同時(shí)申請(qǐng) BLUETOOTH_ADMIN 和 BLUETOOTH 權(quán)限,以及位置權(quán)限才能實(shí)現(xiàn)發(fā)現(xiàn)、配對(duì)和連接外部設(shè)備。比如下方的代碼是您的應(yīng)用在較早設(shè)備上需要進(jìn)行的權(quán)限聲明:

 


△在較早的設(shè)備上申請(qǐng)藍(lán)牙有關(guān)權(quán)限

當(dāng)您切換到構(gòu)建 API 31 的應(yīng)用時(shí),可以在上述權(quán)限聲明的基礎(chǔ)上添加一個(gè) maxSDKVersion 屬性:

 



 
 

 

 

△兼容新舊設(shè)備的前提下申請(qǐng)藍(lán)牙有關(guān)權(quán)限

隨后,您需要添加 BLUETOOTH_SCAN 權(quán)限聲明,并且使用 neverForLocation 標(biāo)記來(lái)向系統(tǒng)說(shuō)明您不會(huì)使用這個(gè)權(quán)限來(lái)推算設(shè)備的位置信息。同時(shí)您需要聲明 BLUETOOTH_CONNECT 權(quán)限來(lái)與藍(lán)牙設(shè)備交互、通過(guò) BLUETOOTH_ADVERTISE 來(lái)將當(dāng)前設(shè)備信息廣播給附近的藍(lán)牙設(shè)備。

為應(yīng)用設(shè)置智能應(yīng)用休眠功能

在 2020 年發(fā)布 Android 11時(shí),我們同時(shí)推出了自動(dòng)重置權(quán)限的功能,并且通過(guò) Google Play 服務(wù)的更新將這項(xiàng)功能帶到了運(yùn)行 Android 6 及以后版本系統(tǒng)的設(shè)備上。當(dāng)某個(gè)應(yīng)用有數(shù)月沒(méi)有被使用時(shí),Android 會(huì)自動(dòng)撤銷該應(yīng)用的某些授權(quán)。從這項(xiàng)更新發(fā)布以后的情況分析,僅 14 天內(nèi)已經(jīng)有 850 萬(wàn)應(yīng)用的權(quán)限因長(zhǎng)久未使用被撤銷了。所以建議您總是要先檢查權(quán)限是否還存在,避免因?yàn)橄到y(tǒng)撤銷權(quán)限而產(chǎn)生錯(cuò)誤。

80c78b26-54c7-11ed-a3b6-dac502259ad0.png

△Android 11 引入的權(quán)限自動(dòng)重置功能

2021 年,在權(quán)限自動(dòng)重置功能的基礎(chǔ)上,我們推出了智能應(yīng)用休眠功能。Android 會(huì)自動(dòng)將長(zhǎng)期沒(méi)有使用的應(yīng)用進(jìn)行休眠,從而優(yōu)化設(shè)備存儲(chǔ)、改善性能和提高安全性。系統(tǒng)不僅會(huì)撤銷用戶此前的授權(quán),還會(huì)強(qiáng)制停止應(yīng)用,收回內(nèi)存、存儲(chǔ)空間及其他臨時(shí)資源。

當(dāng)應(yīng)用進(jìn)入休眠后,系統(tǒng)會(huì)阻止應(yīng)用在后臺(tái)運(yùn)行任務(wù),或者接收推送通知。而結(jié)束應(yīng)用休眠的方式也非常簡(jiǎn)單,用戶只需要啟動(dòng)應(yīng)用即可。與權(quán)限自動(dòng)重置類似,應(yīng)用進(jìn)入休眠時(shí),用戶會(huì)收到相應(yīng)的通知,同時(shí)用戶也可以在設(shè)置中選擇關(guān)閉休眠。

用好分區(qū)存儲(chǔ)策略

Android 10 的發(fā)布首次引入了分區(qū)存儲(chǔ)機(jī)制,它為隱私保護(hù)提供了一種新的存儲(chǔ)方案。隨著后續(xù)幾個(gè)版本的迭代更新,其他應(yīng)用不再能訪問(wèn)某個(gè)應(yīng)用的外部目錄了。您也可以在不請(qǐng)求任何權(quán)限的基礎(chǔ)上添加和編輯本應(yīng)用的文件,或是在用戶知情同意的前提下編輯第三方應(yīng)用產(chǎn)生的文件。而如果您將文件添加到共享存儲(chǔ)目錄中,則無(wú)需任何權(quán)限申請(qǐng)操作。

使用照片選擇器

未來(lái)我們會(huì)發(fā)布一個(gè)照片選擇器 (Photo Picker),它可以無(wú)需任何請(qǐng)求即可讀取用戶選擇的照片或視頻。您可以在其中選擇設(shè)備本地存儲(chǔ)的照片或視頻,也可以訪問(wèn)到來(lái)自 Google Photos 等云提供商的照片或視頻。這個(gè)新的選擇器會(huì)替換以前申請(qǐng)權(quán)限的訪問(wèn)方式,簡(jiǎn)化應(yīng)用的權(quán)限聲明。

照片選擇器 (Photo Picker) https://developer.android.google.cn/about/versions/13/features/photopicker

通過(guò) Google Play 系統(tǒng)更新,Android 11 及以后的設(shè)備都可以使用這個(gè)新的照片選擇器。下面是一個(gè)使用這款新照片選擇器的例子:

// 要發(fā)送的 intent
val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
  putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, 15)
  putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/*", "video/*"))
}
 
// 處理返回的 intent
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
  // 遍歷所有的 URI 結(jié)果
  for (i in 0 until data.clipData.itemCount) {
    val uri = data.clipData.getItemAt(i).uri
    val inputStream = contentResolver.openInputStream(uri)
  }
}
△獲取照片選擇器的 intent 如果您需要在應(yīng)用中喚起這個(gè)選擇器,需要啟動(dòng) ACTION_PICK_IMAGES Intent,然后指定可選取媒體的最大數(shù)量和支持的文件類型。當(dāng)用戶選中文件后,可以通過(guò) clipData 屬性讀取各個(gè)文件的 URI,然后使用ContentResolver 來(lái)讀取文件內(nèi)容。為了能夠兼容更早前的設(shè)備,我們還計(jì)劃發(fā)布一個(gè)支持庫(kù),讓?xiě)?yīng)用在支持時(shí)使用新的照片選擇器,不支持時(shí)使用存儲(chǔ)訪問(wèn)框架簡(jiǎn)化對(duì)文件元數(shù)據(jù)、內(nèi)容的讀取。

存儲(chǔ)訪問(wèn)框架 https://developer.android.google.cn/guide/topics/providers/document-provider

新的存儲(chǔ)權(quán)限劃分策略

此外,我們還在努力通過(guò)新的存儲(chǔ)空間功能為用戶帶來(lái)更清晰、為開(kāi)發(fā)者帶來(lái)更精準(zhǔn)的存儲(chǔ)權(quán)限劃分粒度。比如在下個(gè)版本中引入的 READ_IMAGES 權(quán)限允許您讀取共享存儲(chǔ)空間上的所有圖片和視頻文件,而 READ_AUDIO 可用于讀取所有的音頻文件 (包括 .m3u 播放列表)。 借助分區(qū)存儲(chǔ),您應(yīng)用訪問(wèn)自己分區(qū)內(nèi)的文件時(shí)不需要申請(qǐng)?jiān)L問(wèn)權(quán)限;位于共享存儲(chǔ)空間的非媒體文件仍然可以通過(guò)存儲(chǔ)訪問(wèn)框架獲得。如果要在您的 manifest 中包括這些變化,您可以參照這個(gè)例子:

 

 
 

 

 
 
△聲明使用新的權(quán)限

請(qǐng)注意,MANAGE_EXTERNAL_STORAGE 權(quán)限可以用于那些核心功能就是要與大量的文件進(jìn)行交互的應(yīng)用。但此權(quán)限受限于 Google Play 關(guān)于使用 "所有文件訪問(wèn)權(quán)限" 的政策。關(guān)于此權(quán)限的使用,請(qǐng)參閱管理存儲(chǔ)設(shè)備上的所有文件:

https://developer.android.google.cn/training/data-storage/manage-all-files

以上這些建議概括如下幾點(diǎn):

盡可能減少位置數(shù)據(jù)訪問(wèn),并且盡量只在應(yīng)用處于前臺(tái)時(shí)訪問(wèn)粗略的位置信息;

使用新的藍(lán)牙權(quán)限來(lái)更好地提供隱私保護(hù);

盡可能通過(guò)新的照片選擇器來(lái)避免請(qǐng)求共享存儲(chǔ)空間。

開(kāi)發(fā)者可降級(jí)權(quán)限

一些應(yīng)用可能不再需要某些之前由用戶授予過(guò)的權(quán)限,這些權(quán)限曾用于開(kāi)啟某項(xiàng)特定功能或保留舊的 Android 版本中的敏感權(quán)限。在 Android 13 中,我們提供了新的 API,讓您的應(yīng)用通過(guò)降級(jí)以前被授予的運(yùn)行時(shí)權(quán)限來(lái)保護(hù)用戶隱私。

感謝您的閱讀,希望我們可以共同構(gòu)建一個(gè)能夠讓用戶安心使用的操作系統(tǒng)和應(yīng)用生態(tài)。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3941

    瀏覽量

    127706
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6874

    瀏覽量

    123563

原文標(biāo)題:Android用戶隱私保護(hù)

文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    華納云:VFS提升文件系統(tǒng)性能方面的具體實(shí)踐

    VFS(Virtual File System)通過(guò)提供統(tǒng)一的接口和抽象層,使得操作系統(tǒng)能夠以高效的方式管理和訪問(wèn)不同的文件系統(tǒng)。以下是一些VFS提升文件系統(tǒng)性能方面的具體實(shí)踐示例: 統(tǒng)一的系統(tǒng)
    的頭像 發(fā)表于 11-27 15:59 ?217次閱讀

    AI環(huán)境可持續(xù)發(fā)展方面的作用

    近日,《聯(lián)合國(guó)氣候變化框架公約》締約方會(huì)議第二十九次會(huì)議(COP29)阿塞拜疆巴庫(kù)落下帷幕,與會(huì)者們齊聚于此,共同應(yīng)對(duì)氣候變化。AI 環(huán)境可持續(xù)發(fā)展
    的頭像 發(fā)表于 11-27 11:24 ?327次閱讀

    FP8數(shù)據(jù)格式大型模型訓(xùn)練中的應(yīng)用

    本文主要介紹了 FP8 數(shù)據(jù)格式大型模型訓(xùn)練中的應(yīng)用、挑戰(zhàn)及最佳實(shí)踐,展示了 FP8 提升訓(xùn)練速度和效率
    的頭像 發(fā)表于 11-19 14:54 ?434次閱讀
    FP8數(shù)據(jù)格式<b class='flag-5'>在</b>大型模型訓(xùn)練中的應(yīng)用

    4G模組之UDP應(yīng)用的最佳實(shí)踐!

    今天說(shuō)的是4G模組之UDP應(yīng)用,展示最佳實(shí)踐,送你參考。
    的頭像 發(fā)表于 11-08 09:24 ?485次閱讀
    4G模組之UDP應(yīng)用的<b class='flag-5'>最佳</b><b class='flag-5'>實(shí)踐</b>!

    晶科能源入選2024年度Wind中國(guó)上市公司ESG最佳實(shí)踐100強(qiáng)榜單

    日前,知名金融信息服務(wù)商萬(wàn)得(Wind)發(fā)布“2024年度Wind中國(guó)上市公司ESG最佳實(shí)踐100強(qiáng)”榜單。憑借環(huán)境、社會(huì)和治理方面的卓越表現(xiàn),晶科能源以信息技術(shù)行業(yè)最優(yōu)的AA評(píng)級(jí)強(qiáng)
    的頭像 發(fā)表于 11-05 14:02 ?295次閱讀

    UPS電源與EPS電源功能和應(yīng)用方面的區(qū)別

    電子發(fā)燒友網(wǎng)站提供《UPS電源與EPS電源功能和應(yīng)用方面的區(qū)別.pdf》資料免費(fèi)下載
    發(fā)表于 10-31 10:17 ?4次下載

    MES系統(tǒng)的最佳實(shí)踐案例

    效率、降低成本、保證產(chǎn)品質(zhì)量。 MES系統(tǒng)的最佳實(shí)踐案例 引言 在當(dāng)今競(jìng)爭(zhēng)激烈的制造業(yè)環(huán)境中,企業(yè)必須不斷尋求創(chuàng)新和改進(jìn)的方法來(lái)保持競(jìng)爭(zhēng)力。MES系統(tǒng)作為一種關(guān)鍵的信息技術(shù)工具,已經(jīng)被廣泛應(yīng)用于各種制造行業(yè),以實(shí)現(xiàn)生產(chǎn)過(guò)程的優(yōu)化和管理。本文將探討MES系統(tǒng)的
    的頭像 發(fā)表于 10-27 09:33 ?1299次閱讀

    愛(ài)芯元速榮膺最佳技術(shù)實(shí)踐應(yīng)用獎(jiǎng)

    愛(ài)芯元智車載事業(yè)部(品牌“愛(ài)芯元速”)憑借在車載芯片領(lǐng)域的創(chuàng)新技術(shù)研發(fā)實(shí)力以及推動(dòng)量產(chǎn)上車方面的卓越成績(jī)收獲本屆“金輯獎(jiǎng)”的“2024最佳技術(shù)實(shí)踐應(yīng)用獎(jiǎng)”。
    的頭像 發(fā)表于 10-25 11:39 ?365次閱讀

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐涉及多個(gè)方面,以下是一些關(guān)鍵要素和最佳實(shí)踐建議: 一、核心組件與架構(gòu)設(shè)計(jì) 邊緣設(shè)備與網(wǎng)關(guān) 邊緣設(shè)備 :包括各種嵌入式
    的頭像 發(fā)表于 10-24 14:17 ?518次閱讀

    云計(jì)算平臺(tái)的最佳實(shí)踐

    云計(jì)算平臺(tái)的最佳實(shí)踐涉及多個(gè)方面,以確保高效、安全、可擴(kuò)展和成本優(yōu)化的云環(huán)境。以下是一些關(guān)鍵的最佳實(shí)踐: 一、云成本優(yōu)化 詳細(xì)分析云使用情況
    的頭像 發(fā)表于 10-24 09:17 ?393次閱讀

    RTOS開(kāi)發(fā)最佳實(shí)踐

    基于RTOS編寫(xiě)應(yīng)用程序時(shí),有一些要注意事項(xiàng)。本節(jié)中,您將學(xué)習(xí)RTOS開(kāi)發(fā)最佳實(shí)踐,例如POSIX合規(guī)性、安全性和功能安全認(rèn)證。
    的頭像 發(fā)表于 08-20 11:24 ?490次閱讀

    光通信技術(shù)醫(yī)療健康方面的應(yīng)用

    光通信技術(shù)醫(yī)療健康方面的應(yīng)用是一個(gè)日益受到關(guān)注且快速發(fā)展的領(lǐng)域。隨著科技的進(jìn)步,光通信技術(shù)以其高速、大容量、低損耗、抗干擾等優(yōu)勢(shì),醫(yī)療設(shè)備的研發(fā)、診斷、治療及健康管理等方面展現(xiàn)出了
    的頭像 發(fā)表于 08-09 16:19 ?1135次閱讀

    大數(shù)據(jù)軍事方面的應(yīng)用有哪些

    智慧華盛恒輝大數(shù)據(jù)軍事方面的應(yīng)用涵蓋了多個(gè)方面,這些應(yīng)用不僅提高了軍事管理的效率和水平,也極大地提升了軍隊(duì)的作戰(zhàn)能力和情報(bào)獲取能力。以下是大數(shù)據(jù)軍事
    的頭像 發(fā)表于 06-23 10:34 ?1135次閱讀

    NVIDIA加速識(shí)因智能AI大模型落地應(yīng)用方面的重要作用介紹

    本案例介紹了 NVIDIA 加速識(shí)因智能 AI 大模型落地應(yīng)用方面的重要作用。生成式大模型已廣泛應(yīng)用于各領(lǐng)域,通過(guò)學(xué)習(xí)人類思維方式,能快速挖掘海量?jī)?nèi)容,滿足不同需求。
    的頭像 發(fā)表于 03-29 15:28 ?668次閱讀

    fpga通信方面的應(yīng)用

    FPGA通信方面的應(yīng)用非常廣泛,以下是一些主要的應(yīng)用場(chǎng)景。
    的頭像 發(fā)表于 03-27 14:10 ?1220次閱讀