2017-01-24 10 views
0

ファイルのアクセス権を読み取り専用に設定しようとしていますが、効果がないようです。Android File.setReadyOnly()が期待通りに動作しない

File file = new File(mContext.getExternalFilesDir(null), "testFile"); 

if (!file.exists()){ 
    file.createNewFile(); 
} 

boolean successful = file.setReadOnly(); 
boolean canRead = file.canRead(); 
boolean canWrite = file.canWrite(); 

Log.d("TAG", String.format("Permissions write successful: %s for file: %s", successful, file.getAbsolutePath())); 
Log.d("TAG", String.format("Can read: %s , Can write: %s", canRead, canWrite)); 

コンソール出力の上に行っている:

D/TAG: Permissions write successful: true for file: /storage/emulated/0/Android/data/package.name/files/testFile 
D/TAG: Can read: true , Can write: true 

は、私もそのファイルに書き込みできないようにする必要がありここでは、コードです。ここでの問題は何ですか?

+0

でも書き込むことができます。 –

答えて

1

私の知るところではあるが、完全には確認されていないので、ファイルが外部ストレージに置かれている場合は読み取り専用に変更することはできません。 正確な文書はわかりませんが、同じ問題があったので、これらの行を参考にして参考にしてください。ここに保存されたファイルがあなたのコントロールの外に読み取ることができるように、それは、世界的に読めるのです -

外部ストレージ:ここ

はドキュメントです。ユーザーがアプリをアンインストールすると、 のアプリケーションのファイルは、 のgetExternalFilesDir()ディレクトリに保存されている場合にのみ、ここから削除されます。

hereの要約に従うことができます。

+0

これは事実だと思われますが、私はそう言っている文書を見つけることができません、あなたは見たことがありますか? –

+0

私は答えを編集しました:) –

関連する問題