2013-11-14 6 views
5

私のアプリケーションでは、ビットマップを作成してSDカードにJPG画像として保存しました。他のアプリにこの画像を使用させたくありません。これはアンドロイドで可能ですか?どんな助けでも大歓迎です。他のアプリがSDカードに保存されている自分のアプリの画像にアクセスするのを防ぐ

+0

Androidでは他のアプリがあなたのデータを使用することを許可していません。あなたがする必要があることは何もありません。 – Anirudh

+0

画像は公開されていますか? – hacker

+3

@Anirudh SDカードではなく*内部*記憶域にのみあります – Darkhogg

答えて

7

ファイルを暗号化しない限り、SDカード上のファイルにアクセスできないようにすることはできません。
(外部ストレージhereのセクションを参照してください)

ファイルが外部ストレージに保存されたが、世界可読であり、彼らがコンピュータ上 ファイルを転送するUSB​​マスストレージを有効にすると、ユーザーが を変更することができます。

代わりにinternal storageに入れることを検討すると、アプリケーションにアクセスできるのはアプリケーションだけです。

また、メディアスキャナから隠す必要がある場合は、ドット(.myfile.jpg)で始まる名前を付けるか、隠しファイルにします。 (この方法で非表示にするファイルが複数ある場合は、.nomediaという名前の空のファイル(Saving files that should be sharedを参照)を含めて名前を変更する必要はありません。

1

イメージを保存するときは、他のアプリはそれを認識しませんでした。しかし、あなたのアプリでそれを使いたいときは、拡張子を.bmpか.jpgに戻してください!

+3

これはEnythingを防ぎません - アクセスを難読化するだけです – Darkhogg

+0

これをチェックして、あなたに役立つかもしれません。https://www.addictivetips.com/mobile/how-to-prevent-a-directory-from-being-scanned-by-android -gallery / –

1

アプリケーション固有のデータベースを使用し、代わりにイメージをSDカードに保存します。アプリケーションにのみアクセス権があります。私は、アプリケーションの画像を暗号化するためにこれをやっています。BASE64でエンコードされた画像の文字列を保存するだけです。これは、イメージファイルのバイト配列を保存する場合にも有効です。

0

方法1 - .nomediaファイルを作成する。

ファイルエクスプローラ/マネージャアプリケーション(Astro File ManagerやFile Expertなど)を使用して、非表示にするディレクトリに移動し、 ".nomedia"という名前の空のファイルを作成します。

既存のテキスト(.txt)またはイメージ(.jpg/.jpg)ファイルを前記ディレクトリにコピーします。 テキストエディタで開きます(ファイルを押したまま、コンテキストメニューから適切なオプションを選択します)。 ) 内容を削除する(テキストを押したまま、すべて選択して削除)、変更を保存して終了する 名前を「.nomedia」に変更する(ファイルを再度押したままコンテキストメニューから名前を変更する)。 この方法では、選択したディレクトリでのメディアスキャンが無効になり、起動時にGalleryがディレクトリを完全にスキップします。

enter image description here

関連する問題