在Android 10中,直接上传Uri可能会出现“权限拒绝”异常。这是因为从Android 10开始,应用需要请求特定的权限才能访问外部存储中的文件。
为了解决这个问题,你可以使用以下解决方法:
private static final int PERMISSION_REQUEST_CODE = 1001;
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
} else {
// 权限已授予,执行上传操作
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,执行上传操作
} else {
// 权限被拒绝,给出相应提示
}
}
}
通过以上步骤,你可以在Android 10上成功上传Uri,并避免“权限拒绝”异常的问题。