![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
【前提・実現したいこと】
SDカード(外部ストレージ)のフォルダ内にあるファイルに書き込みを行いたいのです。
【発生している問題・エラーメッセージ】
ファイルに書き込みを行う処理で catch (FileNotFoundException e)でエラーを拾われて、書き込みができません。
言語:Java
try {
File fStatusFile = new File(sLicenseStatusFile);
fOutStream = new FileOutputStream(fStatusFile, false);
fOutStream.write(sLicenseStatus.getBytes());
} catch (FileNotFoundException e) {
ShowMsgDialog("書き込みができません" + sLicenseStatusFile);
return false;
}
【試したこと】
Android6.0以降からpermissionがAndroidManifestだけではだめなものがあると
知ったので実際に、プログラムコードの中でストレージの読み書き権限の確認と
許可を得る作業を実装しました。
また、端末の「設定」→「アプリ」から該当するアプリを選択して権限を確認しました。
結果は、
「SDカードのコンテンツの変更または削除」
「SDカードコンテンツの読み取り」
が許可されていました。
【Runtime Permission部分】
書き込みの処理の前に呼び出しています。
言語:Java
private static final int REQUEST_EXTERNAL_STORAGE_CODE = 0x01;
private static String[] mPermissions = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
private static void verifyStoragePermissions(Activity activity) {
int readPermission = ContextCompat.checkSelfPermission(activity, mPermissions[0]);
int writePermission = ContextCompat.checkSelfPermission(activity, mPermissions[1]);
if (writePermission != PackageManager.PERMISSION_GRANTED ||
readPermission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
activity,
mPermissions,
REQUEST_EXTERNAL_STORAGE_CODE
);
}
}
【補足情報】
Android Studio2.3.3
SDKのAPIは25
OSのAndroidバージョンは7.1 です。
過去の同じような事例を参考に試してみましたが上手くいきません。
ファイルを書き込むためのルートパスも間違っていない上に、
権限が許可となっているのに書き込みができないとはどういうことでしょうか?
よろしくお願いいたしま す。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
Excelマクロでの再読込み方法
-
アプリケーション終了時例外エ...
-
VB.NETによるプロセス間通信
-
VBに、Cのincludeのようなもの...
-
ASP .NETでファイル選択ダイア...
-
ビットマップ画像をRGB値でエク...
-
ファイル名の先頭にアンダース...
-
iniファイルのデータ結合に関す...
-
オートキャドでCSVファイルを変...
-
XMLファイルの表示について
-
グローバル変数のよくない使い...
-
SGファイルって何ですか?
-
スレッドの優先度を下げる方法。
-
FileOpen 関数で既にファイル...
-
テキストファイルの最終行を削...
-
error C2065: error C2057: が...
-
VBAにてEXCEL以外のファイル(テ...
-
iniファイルに追記がしたいです。
-
最近使ったファイルからファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
テキストファイルの最終行を削...
-
CSVファイルへの保存の際、デー...
-
VBに、Cのincludeのようなもの...
-
分割コンパイルの#defineについて
-
SGファイルって何ですか?
-
グローバル変数のよくない使い...
-
Excelマクロでの再読込み方法
-
iniファイルに追記がしたいです。
-
ASP .NETでファイル選択ダイア...
-
ハッシュの計算時間について
-
バッチで118項目のCSVを処理し...
-
FileOpen 関数で既にファイル...
-
Javascript で INI の読み書き
-
fopenできる上限の変更
-
VBAにてEXCEL以外のファイル(テ...
-
マウスポインタの変更
-
C言語のfopenについて教えてく...
おすすめ情報