2012-01-13 19 views
1

私は実際にアンドロイドシステム上のファイルにアクセスしたいと思います。私はアンドロイドの外部ストレージ内のファイルとディレクトリを読み取ることができます。 私の質問は以下のとおりです。外部ストレージと内部ストレージへのアクセス方法

  1. 私は内部ストレージ(特別のビデオ、写真アンドロイドで実行するアプリケーションのすべて)のディレクトリやファイルにアクセスするにはどうすればよいです。
  2. 内部ストレージにインストールされている各アプリケーションのデータはどこに保存されていますか?
  3. 内部記憶装置に存在するデータを内部記憶装置から外部記憶装置に転送することは可能ですか?
  4. これは外部記憶装置が世界で読み取り可能であることを読んでいますか?外部ストレージにインストールされているすべてのファイルにアクセスできますか?)

答えて

4

デフォルトでは、アプリケーションは別のアプリケーションによって保存されたデータにアクセスできません。 (あなたのアプリは別のアプリで書かれたものを読むことはできません)これは変更することができます。アプリケーションはITS OWNデータに対して異なる権限を指定できますが、基本的に、 oそのデータを読む。ただし、アプリがこれを許可するアクセス権を特に設定していない場合、他のアプリはそのデータにアクセスできません。これはAndroidセキュリティ/分離モデルの基本原則であり、Linux /カーネルレベルで実行されます。各アプリケーションは独自のLinux UIDで実行され、ファイルシステム内でアクセス権が設定されるのは、そのUIDがアプリのディレクトリ構造(グループ世界の権限はデフォルトで0に設定されています)。

デバイスのルートにアクセスできる(ルートの電話機とアプリがルート権限で実行されている)場合は、すべてこのウィンドウが表示されますが、問題の範囲外だと考えてください。

外部(SDカード)ストレージは、すべてが無料であるとみなされ、そこにアクセス許可が適用されていない点で異なります(これはもともと、アクセス許可をサポートしていないSDで通常使用されるファイルシステムによるものです)。すべてのアプリは通常、元のアプリが保護するための何か(暗号化など)を行わない限り、他のアプリによってSDカードに書き込まれたものを読み取ることができます。

これはすべて、O'Reillyによって発行されたApplication Security for the Android Platformで詳細に説明されています。

+0

ありがとうございました。一般に、内部メモリに格納されている他のアプリケーションのデータを読み書きする場合は、root権限を取得する必要がありますか? – user1073595

+0

一般に、そのアプリケーションが明示的に許可を与えない限り、あなたのアプリはデータやファイル、または他のアプリケーションにアクセスできないようにしてください。これはAndroidのアプリケーションモデルの基本原理です。 – jeffsix

+0

したがって、内部ストレージ内の他のアプリケーションからのビデオまたは画像の表示を管理することは不可能ですか? – user1073595

0

別のアプリでアプリ固有のファイルにアクセスするには、FileProviderと書かなければなりません。

関連する問題