AndroidScopedStorage权限允许下载文件夹中下载PDF文件
创始人
2024-10-10 01:00:18
0

Android Q(API级别29)引入了Scoped Storage,这是一种新的外部存储空间沙箱模型。在此模型中,应用程序被限制在私有应用数据目录和共享媒体存储目录之间。应用程序不再能够自由地访问和修改与应用程序无关的外部存储文件。如果您想下载PDF文件并保存到设备上,您可能会遇到权限问题。

为了处理这个问题,您可以使用以下代码来请求存储和下载权限,并保存下载的PDF文件:

首先,您需要在AndroidManifest.xml文件中添加以下权限声明:

然后您可以通过这个方法来请求存储和下载权限:

private fun requestPermission() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { val hasWritePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) val hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)

    val permissions = ArrayList()

    if (hasWritePermission != PackageManager.PERMISSION_GRANTED) {
        permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE)
    }

    if (hasReadPermission != PackageManager.PERMISSION_GRANTED) {
        permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE)
    }

    if (permissions.isNotEmpty()) {
        requestPermissions(permissions.toTypedArray(), PERMISSION_REQUEST_CODE)
    }
}

}

然后使用以下代码的方法来下载PDF文件:

val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager val uri = Uri.parse("Your_pdf_file_url") val request = DownloadManager.Request(uri) request.setTitle("PDF File") request.setDescription("Downloading PDF...") request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "sample.pdf") downloadManager.enqueue(request)

这个代码请求了读取和写入存储器的权限,并使用Android Download Manager在沙箱范围内下载PDF文件并保存到设备上的下载目录中。

相关内容

热门资讯

重大推荐!aapoker俱乐部... 您好,aapoker俱乐部这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
记者发布!云扑克内置辅助器,w... 记者发布!云扑克内置辅助器,wepoke有挂,黑科技教程(真是是有挂);无聊就玩这款wepoke有挂...
发现一款!德扑之星带入记分牌,... 发现一款!德扑之星带入记分牌,aapoker外挂,2025新版技巧(固有是有挂)1、aapoker外...
重大通报!来玩德州app辅助工... 重大通报!来玩德州app辅助工具是真的吗,wepoke有挂,AA德州教程(一向真的是有挂);是一款可...
实测必看!微扑克ai机器人,微... 您好,微扑克有辅助挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
科技揭秘!wpk有透视辅助吗,... 一、wpk有透视辅助简介了解软件请加微:136704302wpk有透视辅助是一款在线扑克游戏平台,玩...
实测发现!微扑克脚本代写,aa... 实测发现!微扑克脚本代写,aapoker发牌机制,技巧教程(一直是真的有挂)是一款可以让一直输的玩家...
实测教程!aapoker能玩吗... 实测教程!aapoker能玩吗,wepoke有辅助挂,解密教程(一直真的是有挂)1、金币登录送、破产...
实测必看!wepoke辅助有挂... 您好,wepoke辅助有挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
一分钟揭秘!智星德州扑克辅牌器... 一分钟揭秘!智星德州扑克辅牌器,微扑克ai机器人,玩家教你(竟然是有挂)是一款可以让一直输的玩家,快...