Android 在少数设备的SD卡路径中创建文件

Android 在少数设备的SD卡路径中创建文件,android,file,android-sdcard,Android,File,Android Sdcard,是否可以在SD卡中创建文件?或者至少将文件从内部存储器复制到SD卡?我尝试了getExternalStorageDirectory(),它返回一些手机的内部存储。尝试了其他方法来获取sd卡的路径。但是file.mkdir()总是返回false。不要忘记此权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 另一个例子是在SD卡上创建文件。问题是,正如您所说的getExter

是否可以在SD卡中创建文件?或者至少将文件从内部存储器复制到SD卡?我尝试了
getExternalStorageDirectory()
,它返回一些手机的内部存储。尝试了其他方法来获取sd卡的路径。但是
file.mkdir()
总是返回false。

不要忘记此权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


另一个例子是在SD卡上创建文件。

问题是,正如您所说的
getExternalStorageDirectory()
不会在每个设备上返回SD卡。对于Android,它被称为外部,因为它不是你的软件包的私有文件,可以被其他应用程序访问,而对于Android,它是内部的,只有你的应用程序可以访问文件(例如,它可以是你的数据库)。无法保证每次都能为每个设备获得SD卡。
看看对你的问题的评论,它提供了一个有用的链接到Commonware的答案,这很好地解释了这个问题。下面你可以找到一些类似的解决方法

至于为什么
mkdir()
返回false,一个原因可能是权限。我认为外部存储是危险权限的一部分,因此您需要在运行时获取它,而不仅仅是在清单中