2017-11-10 7 views
0

デバイスストレージに自分のアプリケーションのデータベースのローカルバックアップを作成しようとしています。私はバックアップファイル/ディレクトリを作成しましたが、デバイスからファイル/ディレクトリをコピー/削除できないように制限する必要があります。外部ストレージにファイルを作成してプログラムでアクセス許可を設定する方法

実行中のサービスを使用してコードでこれを達成することは可能ですか?

+0

ファイルエクスプローラなどの別のアプリケーションからコピー/ペーストを制限しようとしていますか? – Jordan

+0

これはできません。 getFilesDir()でバックアップを作成しない限り。あなたのデータベースが現在ある同じ場所。 – greenapps

+0

@Jordanはい。また、私もそれを隠すことができる場合でもOKです。しかし、ディレクトリ名の前に(。)を追加しようとしましたが、ファイルエクスプローラに表示されました。 – Vr1010101

答えて

0

ユーザーが外部ストレージに書き込む権限を持っているかどうかを確認する方法。

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(); 

を!

+0

私はこの手順を実行しました。私はdbファイルをコピーすることができますが、私はそれを隠す/削除できないようにするためにディレクトリへのアクセス許可を設定することができません。 – Vr1010101

関連する問題