在android11用java编写一个程序,查询SD卡是否存在,当存在时返回true,不存在时返回false
时间: 2023-05-22 21:04:17 浏览: 50
可以使用以下代码查询SD卡是否存在:
```
File sdCard = Environment.getExternalStorageDirectory();
boolean sdCardExist = sdCard.exists();
```
其中,`Environment.getExternalStorageDirectory()`可以获得SD卡的根目录,然后判断该文件夹是否存在即可。如果存在,则返回true,否则返回false。
需要注意的是,在Android 11中,访问外部存储需要申请特殊的权限。如果没有获取到该权限,则无法查询SD卡状态。可以通过以下代码来检查是否具有该权限:
```
boolean hasStoragePermission = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
if (!hasStoragePermission) {
//需要申请权限
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE_STORAGE_PERMISSION);
return false;
}
```
其中,`REQUEST_CODE_STORAGE_PERMISSION`为自定义的requestCode,用来标识权限申请的结果。
希望我的回答能够帮到您。