“所需的许可被拒绝!”请求 WRITE_EXTERNAL_STORAGE 时

2024-01-22

我正在尝试在 Android 10 上请求 WRITE_EXTERNAL_STORAGE 权限。我使用以下代码执行此操作:

ArrayList<String> permissions = new ArrayList<>();
if (this.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (this.checkSelfPermission(ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q &&
        this.checkSelfPermission(ACCESS_BACKGROUND_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    permissions.add(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
}
if (this.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (permissions.size() > 0) requestPermissions(permissions.toArray(new String[0]), PERMISSION_REQUEST_FINE_LOCATION);

这是清单

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

除 WRITE_EXTERNAL_STORAGE 之外的所有其他权限均有效。当我尝试请求它时,它不会显示任何确认权限的对话框,但它只是拒绝它。为什么以及如何解决它?


我已经找到了解决方案,但问题的原因对我来说仍然是个谜。如果有人有解释,将不胜感激。基本上我的问题是这个的重复issue https://stackoverflow.com/questions/51149210/storage-access-permission-is-not-visible-in-app-info。我所要做的就是将以下行更改为

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

to

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

tools:node="replace" 的作用是什么?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“所需的许可被拒绝!”请求 WRITE_EXTERNAL_STORAGE 时 的相关文章

  • 不可变位图崩溃错误

    java lang IllegalStateException Immutable bitmap passed to Canvas constructor at android graphics Canvas
  • android - EditText 打字速度很慢

    我的 EditText 在打字时响应速度很慢 这种滞后现象足以让我找到解决方案 我做了一些研究 发现了一个 SO 线程输入文本时 EditText 滞后 https stackoverflow com questions 6173591 a
  • Android - 如何访问 onResume 中 onCreate 中实例化的 View 对象?

    In my onCreate 方法 我正在实例化一个ImageButton View public void onCreate Bundle savedInstanceState super onCreate savedInstanceSt
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • Android studio 在日志猫中“清除全部”,更改日志级别过滤器时日志仍然会回来

    在 LogCat 中 当我单击 全部清除 按钮时 它似乎清除了所有日志 但是 如果我更改日志级别并返回到之前的日志级别 则所有日志都会返回 例如 我正在查看 Verbose 我选择 全部清除 日志清除 我切换到 调试 我切换回 详细 现在所
  • 更改 AChartEngine 中的图例大小

    我想专门更改饼图的图例大小输出 我已经尝试了所有可以找到的 AChartEngine 方法 但没有一个只能更改图例文本大小 我必须重写 onDraw 函数吗 如果是这样 怎么办 要设置图例高度 请使用 renderer setLegendH
  • Android SDK 中可用的所有“android.intent.action”操作的详尽列表是什么?

    大家好 我想知道标准 Android SDK 中定义的所有 Intent 操作是否有详尽的参考 我正在考虑完整的 android intent action someaction 名称 而不是 Intent 类中定义的方便别名操作的限制列表
  • Cordova 地理定位不适用于 Android

    我想在 Android 上使用地理定位 我用 Apache Cordova 编写应用程序 地理定位在 android 电脑模拟器和 android 手机上均不起作用 I try http cordova apache org docs en
  • Locale.getDefault().getCountry() 返回空字符串

    我正在尝试使用国家 地区代码获取用户语言 例如en US es es 但是当我使用Locale getDefault getCountry 它返回空字符串 虽然它给了我正确的语言Locale getDefault getLanguage N
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • 手动启用时 Firebase Crashlytics 不报告崩溃

    Crashlytics 在没有选择加入报告的情况下也能正常工作 但一旦我根据规定设置了选择加入报告 它就会停止报告任何内容tutorial https firebase google com docs crashlytics customi
  • 模拟器:进程已完成,退出代码为 134(被信号 6:SIGABRT 中断)

    我最近刚刚开始在 Mac 上下载 Android Studio 版本 3 0 1 但收到以下错误 模拟器 进程已完成 退出代码为 134 被信号 6 SIGABRT 中断 我按照 Android Studio 教程操作并能够运行模拟器 但在
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 带有空白白屏的 WebView

    我在 DialogFragment 中有一个 webview 它使用以下方式显示文档和 PDF它可以进行几次尝试 但如果用户尝试频繁打开和关闭对话框 webview 将显示空白屏幕 我已经尝试了所有的线程link1 https stacko
  • 按名称查找视图

    是否可以通过名称而不是 id 来查找视图 findViewById R id someView 但我想做这样的事情 findViewByName someView 在处理 xml 时 您必须通过标识符查找视图 但是您可以使用以下方式查找标识
  • Jetpack Compose 部分或开放侧边框

    我正在尝试绘制部分或一侧开放的矩形圆形边框以实现此效果 玩了一下之后我得到了这个 这是通过以下方式完成的 RoundedCornerShape topStartPercent 50 bottomStartPercent 50 start R
  • ormlite 将日期读取为 'yyyy-MM-dd'

    我需要读取给我的 sqlite 数据库 因此我无法更改表中的日期格式 yyyy MM dd 当我尝试使用 ormlite 为我生成对象时 使用以下注释 DatabaseField columnName REVISION DATE dataT

随机推荐

  • gcc/diab:保留未使用的函数/部分

    我有一个项目 我想在链接阶段保留某些功能 部分 I tried static void stub enforcer void attribute used 但这是针对编译器的 而不是针对链接器的 现在链接器负责并使用了 gc section
  • C/C++、FORTRAN、下划线和 GNU Autotools

    我有关于混合语言编程 C C 和 FORTRAN 的问题 使用 gcc 和 gfortran 我搜索了很多 将 fortran 与 语言 X 并且无法解决这个问题 我不确定这是链接问题还是编译器问题 或者两者兼而有之 我创建了三个文件 并使
  • 添加包含 NA 计数和平均值的列

    我有一个数据框 我需要向其中添加另一列 该列显示该行所有其他列中 NA 的计数以及非 NA 值的平均值 我认为这可以在 dplyr 中完成 gt df1 lt data frame a 1 5 b c 1 2 NA 4 NA c c NA
  • Symfony 2 嵌入式表单集合多对多

    我有 2 个实体 用户和组 它们具有多对多的关系 组用于存储用户的角色 我正在尝试通过添加集合来创建用户编辑表单 我希望能够通过从下拉列表中选择它来添加新角色 仅限于数据库中已有的内容 用户类型 php class UserType ext
  • 将 Vector 的第一个元素移动到最后一个元素

    我想将向量的第一个元素移动到向量的末尾 v 1 2 3 4 之后应该是这样的 v 2 3 4 1 我的编译器版本是gcc版本4 4 3 Ubuntu 4 4 3 4ubuntu5 1 我知道在 Vc11 中我们可以使用 std move 来
  • 使用批处理脚本重命名目录中的多个文件

    我有大约 1000 张图像 它们的名称如 IMG 12223 我想将它们重命名为 1 2 3 4 1000 我该怎么做 我编写了一个列出文件的批处理脚本 但我不知道如何重命名每个文件 例如将名称为 IMG 12223 的第一张图像重命名为
  • Rust 的方式是什么,可以用继承来捕获草书事件? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在这里寻找一个实用的答案 我了解 Rust 的 OOP 方法 组合优于继承 编写重用代码的特征以及所有这些爵士乐 如果我能够完全控制代码并
  • EF代码优先级联删除外键一对多

    我们正在使用实体框架代码优先 我们有一个课堂视频 class Video List
  • 乘客 config.ru 权限被拒绝

    有人在rails nginx passenger的组合下经历过ERR EMPTY RESPONSE吗 nginx error log 说 terminate called after throwing an instance of Pass
  • Android:如何模拟后退按钮

    目前我的活动允许用户填写某些数据 包括微调器等 当用户单击下一个系统时 系统导航到另一个屏幕 当我按下手机上的后退按钮时 之前加载和填充的数据即可使用 我的要求要求我在用户界面中提供一个软 后退 按钮 当用户单击它时 它会导航回上一屏幕 但
  • QEventLoop正确使用

    我有疑问应该如何使用QEventLoop 我有两段代码 它们都适合我 下载网络资源 第一 QNetworkAccessManager manager new QNetworkAccessManager this QNetworkReques
  • GWT 将脚本元素注入 html 文件

    在我的 gwt 项目上 我有一个调用字典的脚本 而不是将此脚本元素写入 html 文件中 我想在模块加载时将其从入口点注入到 html 中 我该怎么做 Use com google gwt core client ScriptInjecto
  • 各个版本的 MSVC 功能列表?

    我正在尝试找到一个列表MSVC具有它们出现的相应版本的功能 因此我可以执行以下操作 if defined MSC VER MSC VER gt X define MY INLINE forceinline else define MY IN
  • XCode 4.3.1 iPad 模拟器

    有谁知道为什么 iPad 模拟器缺少主页按钮 Its a simple redesign to make more space for the simulator screen You can trigger the home button
  • 使用 BeautifulSoup 获取日期

    我对 Python 很陌生 我正在尝试抓取网站以获取信息 主要是文本 但我遇到了日期问题 它看起来像这样
  • 针对 Boost.Log 的 g++ 静态链接错误

    静态链接 Boost Log 时出现链接错误 编译器版本是g 4 8 1 Boost版本是1 55 0 我可以毫无问题地进行动态链接 在 make 文件中使用 DBOOST LOG DYN LINK 但是当我进行静态链接时 会出现链接错误
  • 如何处理 JSON_VALUE 路径中的美元 ($) 符号

    我们将数据作为 JSON 字符串存储在数据库中 由于使用 Newtonsoft JSON 此数据包含键中带有 符号的字段 是否可以使用MSSQL中的JSON VALUE函数查询这些字段 我尝试的查询抛出异常JSON 路径格式不正确 在位置
  • 如何使用 Silex 框架实现自定义身份验证成功处理程序?

    我想在用户登录时跟踪一些数据 成功和失败 但我真的不知道该怎么做 防火墙看起来像这样 app gt register new Silex Provider SecurityServiceProvider array security fir
  • 使用Spring事务管理“Propagation.REQUIRES_NEW”到底意味着什么?

    我与此事相关的困惑是我们如何使用之前创建的交易 或者换句话说 一个事务可以与多少个线程相关 在 Spring 中 一笔事务只能与一个线程相关 好吧 通过一些努力 您可以使其成为一个长期运行的事务 但这是一种反模式 REQUIRES NEW意
  • “所需的许可被拒绝!”请求 WRITE_EXTERNAL_STORAGE 时

    我正在尝试在 Android 10 上请求 WRITE EXTERNAL STORAGE 权限 我使用以下代码执行此操作 ArrayList