
【前提・実現したいこと】
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
vba ActiveSheet.pasteを使った...
-
マウスポインタの変更
-
VC++の外部依存関係
-
ドラッグアンドドロップでファ...
-
VB6でのファイル作成方法
-
Cでのネットワークファイルの読...
-
ダイアログボックスで複数フォ...
-
大きいサイズのテキストファイ...
-
ハッシュの計算時間について
-
PHPでCSVの読み込みができません。
-
VBAにてEXCEL以外のファイル(テ...
-
同じ名前のファイルを作った場...
-
テキストファイルの文字化けに...
-
C言語 コンパイルエラー LNK1136
-
Javascript で INI の読み書き
-
ファイル名の先頭にアンダース...
-
【C#】リソースファイルの埋め...
-
Javaソース上でのきれいなSQLの...
-
libtiffのLoadTIFFinDIB()の返...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
VB.NETによるプロセス間通信
-
営業秘密の漏洩について
-
Thunderbirdでemlファイルを開...
-
ドラッグアンドドロップでファ...
-
CSVファイルへの保存の際、デー...
-
バッチで118項目のCSVを処理し...
-
SGファイルって何ですか?
-
ファイルの結合
-
分割コンパイルの#defineについて
-
VBAにてEXCEL以外のファイル(テ...
-
2つのCSVファイルの比較
-
ShellExecuteEx→WaitForSingleO...
-
VBに、Cのincludeのようなもの...
-
RPGでファイル名(もしくはレコ...
-
マウスポインタの変更
-
Excelマクロでの再読込み方法
-
関数の呼び方について
おすすめ情報