ギャラリーからいくつかの写真を選択して非表示にするAndroidアプリケーションを開発しています。
ギャラリーから特定の写真を選択してアプリに保存してギャラリーから削除することはできますが、SDカードでアプリフォルダを開くとその写真を見ることができます。私のSDカードでは、彼はそれらの写真を検出できないはずですか?
ギャラリーからいくつかの写真を選択して非表示にするAndroidアプリケーションを開発しています。
ギャラリーから特定の写真を選択してアプリに保存してギャラリーから削除することはできますが、SDカードでアプリフォルダを開くとその写真を見ることができます。私のSDカードでは、彼はそれらの写真を検出できないはずですか?
これを行う唯一の安全な方法は、画像データを自分で暗号化し、元のファイルを削除して、アプリケーションのみがファイルを復号化できるようにすることです。
AndroidでAESを使用してSDカードからファイルを暗号化する方法をご覧ください。これをどのように行うことができるかを確認します。
追加の手順として、他の任意の数の回答を使用して、暗号化されたファイルを非表示にすることもできます
Galleryがアプリのフォルダーの画像を表示しないようにする場合は.nomedia
、そのフォルダーに名前の付いたファイルを配置できます。
ソース:https ://stackoverflow.com/a/6713863/450534
たとえばファイルマネージャなどでフォルダが表示されないようにする場合は、フォルダがピリオド(。)で始まることを確認してください。たとえば、フォルダの名前がmyfolderの場合、 .myfolderとして作成する必要があります。
ソース:https ://stackoverflow.com/a/5878270/450534
ユーザーはファイルマネージャーの設定を変更して、隠しファイルと隠しフォルダーを表示できることに注意してください。そのための解決策はありません。
フォルダを非表示にする場合は、「。」を追加するだけです。フォルダ名のプレフィックスとして。
Galleryがアプリのフォルダーの画像を表示しないようにする場合は、そのフォルダーに.nomediaという名前のファイルを配置できます。
たとえばファイルマネージャなどでフォルダが表示されないようにする場合は、フォルダがピリオド(。)で始まることを確認してください。たとえば、フォルダの名前がmyfolderの場合、.myfolderとして作成する必要があります。
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath()
+ "/.myFolder" );
これを参照してください。それはもう1ステップで実行されます。彼らはまた、フォルダだけでなくデータも隠しています。
SDカードフォルダのパスを次のように使用します
Environment.getExternalStorageDirectory().toString()+context.getPackageName+"//data//data//"+"(.folderName)";
これにより、画像に最大限のセキュリティが提供されます。ユーザーの電話がルート化されていない場合、このパスはあらゆる面で安全です。