簡體   English   中英

如何保護我的應用程序文件在非根設備中被其他應用程序讀/寫?

[英]How to protect my app files being read/ write by other apps, in non-root device?

我想知道,什么是防止我的應用程序文件在非根設備中被讀/寫到其他應用程序的好方法

目前,我將數據(圖像、音頻等)存儲在getExternalFilesDir

但是,我的一些用戶抱怨說,他們仍然能夠在 3rd 方圖庫應用中看到圖像。

我不確定他們是否使用root電話。 到目前為止,我無法從 Google Photo 應用程序訪問我的應用程序getExternalFilesDir

基於https://developer.android.com/training/data-storage ,似乎只有getFilesDir會阻止其他應用程序訪問文件。

但是,應用程序將用戶數據文件存儲在getFilesDir中是否合適? (我的應用程序是一個筆記應用程序,它需要存儲用戶附件圖像、音頻……)

Android getExternalFilesDir vs getFilesDir() for big files的討論中,似乎getFilesDir不是為存儲用戶數據文件而設計的?

我想知道,什么是防止我的應用程序文件在非根設備中被讀/寫到其他應用程序的好方法

將數據存儲在內部存儲中(主要是getFilesDir()getCacheDir() )。

目前,我將數據(圖像、音頻等)存儲在 getExternalFilesDir

使用該位置的唯一原因是,如果您希望用戶能夠從您的應用程序外部使用您的內容,無論是通過其他應用程序還是通過連接的台式計算機。

從長遠來看, getExternalFilesDir()getExternalCacheDir()將禁止使用其他應用程序——您將開始在 Android 11 上看到這一點。 然而,Android 11+ 需要數年時間才能主導 Android 設備生態系統。

但是,我的一些用戶抱怨說,他們仍然能夠在 3rd 方圖庫應用中看到圖像。

此類應用程序可能會通過掃描外部存儲中的圖像來擴充MediaStore

但是,應用程序將用戶數據文件存儲在 getFilesDir 中是否合適?

是的。 一切都應該在內部存儲中,除非用戶特別需要能夠在您的應用程序之外使用內容。 內部存儲應該是您的默認選擇, 外部存儲或存儲訪問框架是針對該默認值對 go 做出的明確選擇。

從 Android getExternalFilesDir vs getFilesDir() 的討論來看,似乎 getFilesDir 不是為了存儲用戶數據文件而設計的?

不。

十年前,內部存儲和外部存儲是獨立的分區,部分原因是外部存儲通常被實現為可移動存儲(微型 SD 卡)。 不過,自 2011 年 Android 3.0 以來,內部存儲和外部存儲幾乎總是在同一分區上的不同目錄。 兩者之間的主要區別在於哪些進程可以訪問文件,您的內部存儲部分被鎖定到您的應用程序,而外部存儲可以被任何東西訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM