0

アプリに少し問題があります。写真を撮って保存し、ギャラリーにロードする機能があります。

写真を保存する前に、電話にExternalStorage. そうでない場合、画像は Files ディレクトリに保存されますgetFilesDir()が、内部ストレージからギャラリーにロードできません。

ギャラリーに画像をロードするコードExternalStorage(ExternalStorageを再スキャンし、完全に機能します):

 path = Environment.getExternalStorageDirectory()+"";
 c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                        + path)));

ディレクトリからギャラリーに画像をロードするコードFiles(何もロードしません):

 c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                    + c.getFilesDir()+"/files/")));

PS: ファイルは存在します。で確認しましたadb shell

4

1 に答える 1

2

デフォルトでは、内部ストレージ (アプリケーション フォルダー - /files) に保存されたファイルは、それらを作成したアプリケーションでのみ使用できます (ファイル システム レベルで保証されます)。ギャラリー アプリはファイルをロードできません。新しいファイルを内部ストレージに保存するときは、他のアプリによるファイルの読み取り/書き込みを明示的に許可する必要があります。参照: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

「MODE_PRIVATE は、ファイルを作成 (または同じ名前のファイルを置換) し、アプリケーションに対して非公開にします。利用可能なその他のモードは、MODE_APPEND、MODE_WORLD_READABLE、および MODE_WORLD_WRITEABLE です。」

于 2012-06-12T14:53:22.860 に答える