簡體   English   中英

如何訪問外部和內部存儲?

[英]How To Access External and internal storage?

我實際上想訪問android系統上的文件。 我設法讀取android的外部存儲器中的文件和目錄。 我的問題是:

  1. 如何訪問內部存儲的目錄和文件(特別是視頻,所有在android中運行的應用程序的圖片)。
  2. 哪里存儲了安裝在內部存儲中的每個應用程序的數據?
  3. 是否可以傳輸內部存儲器中存在的數據(從內部存儲器到外部存儲器?
  4. 我讀到外部存儲是世界可讀的? 這是什么意思?(如果創建一個應用程序,那么這個應用程序可以訪問安裝在外部存儲中的所有文件?)

默認情況下,應用無法訪問其他應用存儲的數據。 權限應用於內部存儲,使應用程序寫入的數據無法在該應用程序外部訪問(您的應用程序無法讀取其他應用程序編寫的任何內容)。 這可以更改,其中應用程序可以為ITS OWN數據指定不同的權限; 基本上,應用程序可以允許其他人讀取其數據。 但是,如果某個應用未明確設置其權限以允許此操作,則其他應用無法訪問其數據。 這是Android安全/隔離模型的基本原則,在Linux /內核級別完成,因為每個應用程序在其自己的Linux UID下運行,並且在文件系統中設置權限,僅允許UID訪問應用程序的目錄結構(組)和世界權限默認設置為0)。

如果你有權訪問設備上的root(root用戶手機和你的應用程序以root權限運行),這一切都會消失,但我們應該考慮你的問題超出范圍。

外部(SD卡)存儲的不同之處在於它被認為是免費的,並且不會在那里應用權限(這最初是由於SD中通常使用的文件系統不支持權限)。 任何應用程序通常都可以讀取任何其他應用程序寫入SD卡的任何內容,除非原始應用程序執行某些操作來保護它(加密等)。

這一點在O'Reilly剛剛發布的Android平台應用程序安全性中進行了詳細解釋。

您必須編寫FileProvider以使用其他應用程序訪問特定於應用程序的文件。

暫無
暫無

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

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