要获取Android设备的存储卡,你需要使用Environment类的getExternalStorageDirectory()方法。这将返回一个文件,表示设备的外部存储目录。然后,你可以使用这个文件对象来读取或写入数据。
这是一个简单的例子, 在 Android Manifest 文件中添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
然后在你的代码里调用如下方法获取存储卡路径:
File sdCard = Environment.getExternalStorageDirectory();
注意因为Android 6.0开始,需要动态申请权限。所以在你的代码中确认权限已经被接受。
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
如果需要同时兼容Android Q (10.0) 以上版本,建议使用getExternalFilesDir()
、getExternalCacheDir()
等方法获取应用关联目录。或者使用MediaStore API
,SAF(DocumentFile API)
等方式。
例如:
File file = null;
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.Q){
//适配android Q
file = getExternalFilesDir("");
}else {
file = Environment.getExternalStorageDirectory();
}
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/172307.html