デバイスストレージに自分のアプリケーションのデータベースのローカルバックアップを作成しようとしています。私はバックアップファイル/ディレクトリを作成しましたが、デバイスからファイル/ディレクトリをコピー/削除できないように制限する必要があります。外部ストレージにファイルを作成してプログラムでアクセス許可を設定する方法
実行中のサービスを使用してコードでこれを達成することは可能ですか?
デバイスストレージに自分のアプリケーションのデータベースのローカルバックアップを作成しようとしています。私はバックアップファイル/ディレクトリを作成しましたが、デバイスからファイル/ディレクトリをコピー/削除できないように制限する必要があります。外部ストレージにファイルを作成してプログラムでアクセス許可を設定する方法
実行中のサービスを使用してコードでこれを達成することは可能ですか?
ユーザーが外部ストレージに書き込む権限を持っているかどうかを確認する方法。
public static boolean canWriteOnExternalStorage() {
// get the state of your external storage
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// if storage is mounted return true
Log.v(“sTag”, “Yes, can write to external storage.”);
return true;
}
return false;
}
、その後のは、実際に外部ストレージに書き込むために、このコードを使用してみましょう:許可
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
ハッピーコーディング以下のあなたが必要
// get the path to sdcard
File sdcard = Environment.getExternalStorageDirectory();
// to this path add a new directory path
File dir = new File(sdcard.getAbsolutePath() + “/your-dir-name/”);
// create this directory if not already created
dir.mkdir();
// create the file in which we will write the contents
File file = new File(dir, “My-File-Name.txt”);
FileOutputStream os = outStream = new FileOutputStream(file);
String data = “This is the content of my file”;
os.write(data.getBytes());
os.close();
を!
私はこの手順を実行しました。私はdbファイルをコピーすることができますが、私はそれを隠す/削除できないようにするためにディレクトリへのアクセス許可を設定することができません。 – Vr1010101
ファイルエクスプローラなどの別のアプリケーションからコピー/ペーストを制限しようとしていますか? – Jordan
これはできません。 getFilesDir()でバックアップを作成しない限り。あなたのデータベースが現在ある同じ場所。 – greenapps
@Jordanはい。また、私もそれを隠すことができる場合でもOKです。しかし、ディレクトリ名の前に(。)を追加しようとしましたが、ファイルエクスプローラに表示されました。 – Vr1010101