私のアプリケーションはセキュリティ目的で使用されます。そのため、私のアプリケーション ユーザーは、すべての写真がフォルダーに保存されている写真をキャプチャします。そのフォルダーは、他のアプリケーションからアクセスしてはならず、デバイスがコンピューター システムに接続したときにアクセスを許可してはなりません。ユーザーがこれらの画像を表示したい場合は、アプリケーションからのみアクセスする必要があります。
5 に答える
このガイドによると、ファイルをデバイスの内部ストレージに直接保存できます。デフォルトでは、内部ストレージに保存されたファイルはアプリケーション専用であり、他のアプリケーションはそれらにアクセスできません (ユーザーもアクセスできません)。ユーザーがアプリケーションをアンインストールすると、これらのファイルは削除されます。例えば:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
MODE_PRIVATE は、ファイルを作成 (または同じ名前のファイルを置換) し、アプリケーションに対してプライベートにします。使用可能なその他のモードは、MODE_APPEND、MODE_WORLD_READABLE、および MODE_WORLD_WRITEABLE です。
私の知る限り、唯一の方法は、保存しencrypt
たファイルです。ユーザーが SD カードをマウントして、保存されているすべてのファイルにアクセスするのを防ぐ方法はありません。
デバイスがPCに接続されている場合、そのフォルダーへのアクセスを許可することはできません..また、SDカードでも不可能ですが、アプリケーションからのみ開くことができる画像に別の形式を使用するか、画像を暗号化できます. または、画像をギャラリーに表示しないようにしたい場合は、「.nomedia」という名前の空のファイルをフォルダーに入れることができます。しかし、WRITE_EXTERNAL_STORAGE パーミッションに関するドキュメントを読めば、私が言っていることが理解できるはずです。:)
この関連する質問によると、保護されたファイルは内部ストレージ (SD ではなく) にのみ作成できます...
次の解決策を試してください。
それはまさにあなたが望むものではありませんが、それが可能かどうかは疑問です. 最良のオプションは非表示にすることですが、それは制約付きでも機能します (Linux では機能し、Windows では機能しませんが、他のアプリケーションはフォルダーにアクセスできます)。