質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

2053閲覧

Android mkdir()でフォルダが作れない

tanuki_

総合スコア31

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2022/06/25 09:05

編集2022/06/25 09:26

パーミッションの付与及び権限リクエストを行っているにも関わらずmkDir()でFalseとなりフォルダが作成できません。
何が足りないのでしょうか。
ご教示頂けると幸いです。よろしくお願い致します

AndroidManifest.xml

1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 package="com.fujitsu.dfxmobile"> 5 <uses-permission android:name="android.permission.VIBRATE"/> 6 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> 7 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 8 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 9 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 10 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 11 <uses-permission android:name="android.permission.INTERNET"/> 12 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 13

MainActivity.java

1 protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.alram_list); 4 firtTime = true; 5 context = getApplicationContext(); 6 7 8 if (Build.VERSION.SDK_INT >= 23) { 9 if(ActivityCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED 10 || ActivityCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) 11 { 12 ActivityCompat.requestPermissions(this, 13 new String[]{ 14 Manifest.permission.WRITE_EXTERNAL_STORAGE, 15 Manifest.permission.READ_EXTERNAL_STORAGE, 16 }, 17 PERMISSION_WRITE_EX_STR); 18 } 19 } 20 21 //音を鳴らす 22 Alarm.play(AlramList.this, R.raw.sound1); 23 //バイブレーション(要調整) 24 Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE); 25 long[] pattern = {3000,1000,2000}; 26 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 27 vibrator.vibrate(VibrationEffect.createWaveform(pattern, 2)); 28 } else { 29 vibrator.vibrate(pattern, 2); 30 } 31 try { 32 Thread.sleep(7000); 33 } catch (InterruptedException e) { 34 } 35 vibrator.cancel(); 36 OnCreate以下略 37 } 38 @Override 39 public void onRequestPermissionsResult( 40 int requestCode, String[] permission, int[] grantResults 41 ) { 42 super.onRequestPermissionsResult(requestCode, permission, grantResults); 43 if (grantResults.length <= 0) { 44 return; 45 } 46 switch (requestCode) { 47 case PERMISSION_WRITE_EX_STR: { 48 if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { 49 /// 許可が取れた場合・・・ 50 //アプリケーションフォルダがなければ作る 51 LogController.getInstance(); 52 } else { 53 /// 許可が取れなかった場合・・・ 54 Toast.makeText(this, 55 "アプリを起動できません....", Toast.LENGTH_LONG).show(); 56 finish(); 57 } 58 } 59 return; 60 } 61 } 62

LogController.java

1 2 private final static String LOG_DIR = "test"; 3 4 /** コンストラクタ */ 5 public LogController() { 6 if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 7 return; 8 String dirPath = Environment.getExternalStorageDirectory().getPath(); 9 10 mkdir(dirPath, LOG_DIR); 11 } 12 13 14 /** フォルダ作成 */ 15 private void mkdir(String dirPath, String name) { 16 File dir = new File(dirPath, "/" + name); 17 if (!dir.exists()) { 18 String a; 19 if(!dir.mkdir()){ 20 a = "1"; 21 }else{ 22 a = "2"; 23 } 24 } 25 26 } 27

環境
Android10
端末
SONY XPERIA SO-05K

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ご指摘を受け調べた所
context.getExternalFilesDir(null).getPath();
で出来る事が分かりました。

投稿2022/06/25 12:40

tanuki_

総合スコア31

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

android10 以降は Environment.getExternalStorageDirectory() は使い物になりません。
どうするかはアプリに依りますので、「android Environment.getExternalStorageDirectory」で検索する等してみてください。

投稿2022/06/25 10:21

編集2022/06/25 10:23
jimbe

総合スコア12865

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問