2009-07-15 6 views
9

私はandroidアプリケーションを作成しています。このアプリケーションには、SDカード内に隠されている必要がある(ユーザがアクセスできない)DBが含まれています。誰も私にこれを行う方法を教えてもらえますか?ファイルをAndroidのSDカードに隠すには?

答えて

7

簡単な解決策として、dbファイルの先頭にa。 (.dbfileのように)。これは、アンドロイドを含むLinuxベースのシステム上のファイルを非表示にします。

ユーザーが誤ってファイルを削除したり変更したりしないようにファイルを非表示にしたいと仮定しています。

+0

dbファイルが安全なものであるため、ファイルがユーザーに表示されないようにしたい(ファイルサイズが17MB + ssdだから私がsdカードで作成する理由)。ユーザーはコピー、削除/変化する。 – arams

+0

変更を検出するには、認証タグを追加します。 – tuergeist

3

あなたが求める方法でSDカードを保護することはできません。

11

SDカードに保存されているファイルは、電話で実行されているアプリケーションと、SDカードを搭載しているユーザー(電話機などの間の両方)からアクセスできます。

ファイルのプロパティを変更して非表示にすることはできますが、それでも簡単に見つけることができます。 SDカードのようなパブリックパーティション上のファイルを、ユーザーが記述した方法で「安全」にする方法はありません。ユーザーは常にファイルをコピー、削除、変更することができます。

問題を解決する最善の方法は、データベースを暗号化して安全に記録する方法を検討することです。ユーザーがファイルを削除またはコピーできないようにすることはできませんが、ファイルからデータを読み込んだり、内容を変更したりすることは困難です。

+0

私は暗号化を行う場合、解読されたファイルもSDカードに保存されます。アプリケーションサイズは2倍にする必要があります。考え方(dbファイルサイズ17 MB) – arams

+1

SDカードにも復号化されたファイルがありますか?それをenctryptingのポイントは何ですか?暗号化した後、暗号化されていないバージョンを削除します。 17mBはそれほど大きくないので、en/de = cryptingのときに一時コピーをRAMに保持することは問題ありません。 – Mawg

3

だけによる。「ドット」を開始し、ファイルに名前を付ける...「.myFolder/.myfile」

1

あなたは名前がドットで始まるフォルダを作成することができます(。)の例(.dbfiles)アンドロイドは、これらを参照してください。フォルダを設定フォルダとして表示し、ギャラリー、音楽プレーヤーなどのアプリケーションではこれらのフォルダの内容を表示しません。Es File explorer

0

Sdcardのような先進的なファイルエクスプローラでこれらのフォルダを見ることができます!内部アプリデータパーティションがあなたのための場所です。

関連する問題