当前位置: 首页 > 知识库问答 >
问题:

AndroidMarshmallow位置权限不起作用,即使权限是由用户授予的

长孙阳嘉
2023-03-14

我正在开发一个应用程序,它需要AndroidMarshmallow的位置权限。我遵循了实现它所需的所有步骤(函数调用)。当我运行应用程序时,它会弹出一个请求用户权限的框。当我选择是时,它会显示另一个弹出窗口,上面写着“检测到屏幕覆盖”,并将我带到显示应用程序列表的设置屏幕。在那里,我取消选中所有应用程序,然后按后退按钮返回我的应用程序。当调用onRequest estPermissionsResult()回调时,我可以看到权限未被授予。它一直在发生。

为什么它一直显示“检测到屏幕覆盖”,因为我已经取消选择/取消选中列表中的所有应用程序?

尽管我在请求许可时按了“是”,但为什么不授予许可?

共有2个答案

屠晟睿
2023-03-14
This is the issue reported many times.

The possible solutions are:
1) delete apps like(cleanmaster, battery saver, etc.) or go to settings/app/cleanmaster/force stop.

2) 或者您也可以删除cleanmaster的权限。

3) 确定哪个应用程序比其他应用程序更具吸引力。事先把它关掉。

注意:有时取消选中实际上并不能解决覆盖问题。

章晗日
2023-03-14

原因:当您运行浮动应用程序时,会出现此消息,然后启动新安装的应用程序,该应用程序请求访问权限。浮动应用程序包括Facebook Messenger的聊天头像,它可能会出现在其他应用程序之上,等等。

受影响的智能手机:互联网上的用户报告说在三星和摩托罗拉智能手机上遇到了这个问题。它似乎可能会影响许多制造商。Android PIT设法在沃达丰和三星智能手机上复制了这种行为。

问题应用程序:我们使用Drupe复制了这个问题,但CleanMaster、Lux和Twilight都被认为是这个问题的罪魁祸首。

技术背景:作为一项安全措施,应用程序要求允许使用手机的某些部分(内部存储、摄像头等)。理论上,显示覆盖会干扰请求许可的对话,因此您需要禁用该html" target="_blank">功能以与对话交互。

现在解决方案,如何修复:

第一步:“检测到屏幕覆盖”修复

查找哪些应用程序有权在屏幕上绘制。在非三星智能手机上,请遵循以下步骤:

  1. 打开设置

对于三星用户:

  1. 打开设置

第二步:

你会发现自己在有权使用浮动按钮或其他屏幕覆盖的应用程序列表前面。现在你需要识别有问题的应用程序,并暂时拒绝它在屏幕上绘图的权限。以下是一些关于如何识别造成问题的应用程序的建议:

  1. 您是否在屏幕上看到应用程序气泡?如果是,几乎可以肯定是这个应用程序造成的。要么隐藏应用程序气泡,要么在列表中禁用该应用程序
  2. 您是否安装了更改显示屏颜色或调整亮度的应用程序?
  3. 据报道,清洁大师可能会制造麻烦。如果您在列表中看到清洁大师,请禁用它
  4. 如果没有明显的原因,禁用一切

第三步:

现在您可以尝试再次启动该应用程序,它应该会请求权限,而不会出现“检测到显示覆盖”错误。

对于三星用户:单手键盘设置可能是根本原因。通过转到设置来停用它

第四步:重新激活屏幕覆盖

为了让您在第二步中禁用的应用程序再次工作,您需要重新启用其覆盖权限。如果您关闭了所有应用程序,可能值得考虑只重新激活您实际使用的那些应用程序。

这是一个相当不雅观的解决方案,但在谷歌做出必要的更改以防止应用程序覆盖干扰权限对话之前,这是我们最好的解决方案。

这本指南有用吗?如果您在遵循我们的指南后仍遇到错误,请留下评论,以便我可以尝试解决该问题。

 类似资料:
  • 问题内容: 我在注册后使用以下方法进行程序化登录 用户已通过身份验证,但始终具有ROLE_ANONYMOUS我不知道为什么?有任何想法吗 ? 问题答案: 这种现象看起来很奇怪。Javi建议手动将安全性上下文持久化到会话中,但是应该由Spring Security的自动完成。 一个可能的原因,我可以想像是在你的登记处理的页面。 禁用指定URL的所有安全过滤器。如你所见,它可能会干扰Spring Se

  • 我有一个针对SDK28的Android应用程序,所以我有处理的权限。我检查是否设置了,但当Exoplayer尝试读取文件(我验证该文件确实存在)时,我看到 com.google.android.exoplayer2.upstream.filedatasource$filedatasourceException:java.io.fileNotfoundexception:/storage/emula

  • 我正在尝试制作一个使用数据库的java应用程序。我已经下载了db2并创建了一个用户'student'。我的程序中有以下几行: 显然,我几乎不知道我在做什么,我不知道如何给予“学生”必要的特权。也就是说,我不知道什么用户可以给他特权,因为我从来没有创建过另一个用户。我看到有人提到过'db2admin'(我使用的是windows),但我不知道该如何处理这段信息。我不知道如何检查现有用户,也不知道对db

  • 我最近更新了我的应用程序,以支持android 6Marshmallow。我按照指示https://developer.android.com/training/permissions/requesting.html 并添加了请求权限Manifest.permission.RECEIVE_SMS。当 im 运行以下代码时: 我得到 java.lang.SecurityException:权限拒绝:

  • 我已经创建了自己的android。这样我就可以使用隐藏的API调用“DisplayManager.connectWifiDisplay()”。 当我运行应用程序并调用该方法时,在通过Wifi Direct连接到显示器后, 我得到以下例外: java.lang.SecurityException:连接到wifi显示器所需的权限:用户10105和当前进程都没有android.Permission.CO

  • 问题内容: 尝试写这个: 找不到执行此简单任务的当前方法。 注意:即使需要其他方法,iOS7也应该可以使用 问题答案: 您可以使用以下代码执行相同的操作: 注意: 确保在构建阶段的“链接二进制”部分中添加框架 您应该在课堂上写一些用于导入的内容 SWIFT 3 斯威夫特4