2

/Android/data/< package_name>/files/ここで説明されているように、アプリ固有のフォルダーの許可について誰かが説明できますかhttp://developer.android.com/guide/topics/data/data-storage.html#filesExternal

それがアプリに対して本当にプライベートである場合と、誰でも読み取り可能な場合は明確ではありません。USB 大容量ストレージが有効になっている場合、アプリ固有のフォルダーを含む外部ストレージ内のファイルは誰でも読み取り可能ですか?

ファイル マネージャー アプリ (ASTRO ファイル マネージャー) を使用してみましたが、SD カードのアプリ固有のフォルダーにあるファイルを表示/開くことができます。これは、Protect USB storage[設定] の開発者向けオプションの設定とは関係ありません。Androidの4.3バージョンを実行しているGoogle Nexus 4を使用しています。

/Android/data/appname/files/そのため、このフォルダーがアプリに対して本当にプライベートであると混乱します。

ありがとう。

4

4 に答える 4

5

Android のセキュリティについて話しましょう。

  1. ルート化されていないデバイスでは、アプリケーションのホーム ディレクトリにアクセスできません。これは重大なセキュリティ ホールでした。

  2. WORLD_READABLE ファイルの作成は非推奨であり、API のテキストから判断すると、これは「非推奨」が「非推奨」を意味するケースの 1 つです。

  3. では、アプリケーション間でデータを渡したいですか?

    a. 2 番目のアプリが取得できるように、設定された場所にファイルを残すことができます。しかし、これは悪い考えです。ユーザーのストレージスペースが散らばり、セキュリティがまったくなく、2番目のアプリには保留中の更新について通知されず、状況を簡単に判断できません. このアプローチから離れることをお勧めします。とはいえ、以下の更新セクションにいくつかの詳細を含めました。

    b. シンプルで小さなデータのチャンクについては、 Intent/BroadcastReceiver アプローチを使用することをお勧めします。

    c. 物事を正しい方法で行いたい場合は、ContentProvider アプローチを使用できます。

    d. Intent/Service アプローチに進むことができます。

    e. 真の IPC の場合 - AIDL を使用します

アップデート:

Google の記事をよく読むことから始めることをお勧めします。この記事では、アプリ間で大きなファイルを転送する場合を明確に扱います。また、ご覧のとおり、用語は非常に紛らわしいものです。

それでは、この件に関する Google の記事に照らして、あなたの質問を見直してみましょう。

内部ストレージはアプリ専用であり、他のアプリからアクセスすることはできません。Context.html#getFilesDir()を介してディレクトリ構造にアクセスできます。

注意してください:

  1. ここに書き込まれたファイルは、ユーザーがアプリをアンインストールすると削除されます。

外部ストレージは、物理的に内部 (内蔵ストレージ) または外部 (リムーバブル SD カード) にすることができます。ここにはセキュリティ モデルはありません。ファイルは誰でも見ることができ、アクセスできます。Context.html#getExternalFilesDir()を介して外部ディレクトリ構造にアクセスできます。注意してください:

  1. このディレクトリにアクセスできなくなる可能性があります (ユーザーがデバイスをコンピューターに接続したとき、または SD カードを取り外したとき)。

  2. デバイス ユーザーごとに個別のディレクトリが存在する場合があります。

  3. ユーザーがアプリをアンインストールしても、ファイルは残ります。

于 2013-10-21T08:49:07.413 に答える
0

この許可を試してください

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-10-21T06:48:38.247 に答える