Android getExternalFilesDir权限

Mar*_*ark 2 permissions android android-4.4-kitkat

我知道对于Android 4.4,您可以使用此方法在外部存储中创建"特定于应用程序"文件夹.

getExternalFilesDir("myfiles").getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

这会创建文件夹/storage/sdcard/Android/data/com.abc.zyz/files/myfiles

但是,如果没有额外的文件夹"文件",以这种方式(我的首选)创建它是否安全?

String mfolder = Environment.getExternalStorageDirectory().getPath() + "/Android/data/" + getPackageName() + "/myfiles";
File sd = new File(mfolder);
if(!sd.exists() || !sd.isDirectory()) {
sd.mkdirs();
}
Run Code Online (Sandbox Code Playgroud)

我在API19模拟器上运行它,并且使用这两种方法创建文件夹,但我担心在真实设备上完成时可能存在使用第二个首选方法执行权限的权限问题.

有人可以建议或测试Kitkat设备吗?

dEv*_*_bE 5

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
                 android:maxSdkVersion="18"/>
Run Code Online (Sandbox Code Playgroud)

这将允许您在18岁之前写入外部存储(即保存文件),因为在不需要权限之后需要提供权限.我知道这个问题早就发布了,但是认为答案可能有助于其他人因为我花了一些时间才发现这个问题