2012-02-14 104 views
2

ユーザーが初めてアプリケーションを開くときに、ローカルファイルに少しデータを書き込みます。context.getFilesDir()への書き込み時に「アクセスが拒否されました」

私は私のアプリは、このファイルへの書き込み権限が必要なので、私はそうのようなgetFilesDirを()を使用していていることを理解する:

File ins = new File(context.getFilesDir(), "INSTALLATION"); 
// do some things 
FileOutputStream out = FileOutputstream.new(ins); 
out.write(data.toString().getBytes()); 
out.close(); 

これは例99.9%で動作します。しかし、私はこのファイルを作成する権限がないと言っている小さな例外があります。例:

java.lang.RuntimeException: Unable to create application com.blah.blah.Blah 
java.lang.RuntimeException: java.io.FileNotFoundException: /INSTALLATION (Permission denied) 

なぜこのようなことが起こりますか?私はそれを回避することはできますか?即時のクラッシュはです。アプリで不愉快な最初の経験です。

+0

を得ているようはい、その後の答えここ – Sameer

+0

としてそれを受け入れてください場合は?解決しなかったあなたは、拡張子を持つファイルの正しいパスを与えることを確認してくださいアンドロイドマニフェスト

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

で許可を与えます同様の問題への私の答えです:http://stackoverflow.com/questions/7353871/fileoutputstream-throws-filenotfoundeception-when-unzipping/15308534#15308534 – blyabtroi

+0

あなたは問題が何かを理解しましたか?私は同じ問題を抱えている。私はインストールを追跡するために公式のAndroidコードを使用しています。http://android-developers.blogspot.ro/2011/03/identifying-app-installations.html –

答えて

-1

あなたは

java.io.FileNotFoundException 
+1

いいえ、それは正しくありません。ユーザーに外部ストレージへのアクセスを要求することなく、アプリケーションのストレージに書き込むことができます。 私が言ったように、書き込みの成功率は99.9%でした。パスと名前は常に同じなので、アクセス権の問題でも不正なパスでもありません。 – abscondment

+0

許可なく!.its素晴らしいとDOCに対して。我々は、許可なしでのみ資産、共有prefrenecesに書き込むことができます、sdcardすることはできません。 – Sameer

+0

私はSDカードに書き込もうとしていません。それはまったく別の問題です。 私はアプリケーションのプライベートディレクトリに次のように書いています。 http://developer.android.com/reference/android/content/Context.html#openFileOutput%28java.lang.String,%20int%29 – abscondment

関連する問題