#前書き
Androidデベロッパガイドを読みながら、アプリ固有の内部ストレージにファイルを保存する方法について、勉強しています。
「ストリームを使用してファイルを保存する」の項目読んでいて、以下の注意書きありました。
注意: Android 7.0(API レベル 24)以上を実行するデバイスでは、openFileOutput() に Context.MODE_PRIVATE ファイルモードを渡さないと、SecurityException が発生します。
#質問
実際に、以下のソースコードでContext.MODE_PRIVATEをContext.MODE_APPENDに替えて、Android7.0以上のエミュレータで実験したのですが、Logcatには、SecurityExceptionの例外は発生していませんでした。
SecurityExceptionの例外を発生させたいのですが、私の作業や解釈のどこに誤りがあったのでしょうか?
ご教示のほどよろしくお願いします。
#ソースコード
このソースコードは、次のとおりです。(今回はレイアウトを表示しないようにしましたので、activity_main.xmlファイルはありません。)
java
1 2public class MainActivity extends AppCompatActivity { 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 8 String str = "abcdefghijklmn"; 9 // try-with-resources 10 Context context = getApplicationContext(); 11 12 try ( 13 // FileOutputStream fileOutputStream = context.openFileOutput("test.txt", Context.MODE_PRIVATE) 14 FileOutputStream fileOutputStream = context.openFileOutput("test.txt", Context.MODE_APPEND) //モードを変更してSecurityExceptionを発生させたい 15 ){ 16 fileOutputStream.write(str.getBytes()); 17 } catch (IOException e) { 18 e.printStackTrace(); 19 } 20 } 21}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/21 06:41
2021/09/21 07:19
2021/09/22 10:34