在Android中,可以使用以下方法来请求外部存储权限,而不使用包(第三方库):
private static final int REQUEST_STORAGE_PERMISSION = 123;
// 检查是否有外部存储权限
private boolean hasStoragePermission() {
return ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
}
// 请求外部存储权限
private void requestStoragePermission() {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_STORAGE_PERMISSION);
}
// 处理权限请求结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_STORAGE_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予
// 可以在这里执行需要外部存储权限的操作
} else {
// 权限被拒绝
// 可以在这里处理权限被拒绝的情况
}
}
}
requestStoragePermission()
方法来请求外部存储权限。以上代码会在运行时请求外部存储权限,如果权限已经被授予,可以在请求权限成功的回调方法中执行需要外部存储权限的操作。如果权限被拒绝,则可以在回调方法中处理权限被拒绝的情况。