我有一个需要访问用户帐户的应用 当用户拒绝联系人权限对话框时,奇怪的行为开始。
与往常一样,对话框出现,背景中的应用程序会叠加内容以使内容变暗。如果用户现在拒绝了权限,则对话框会消失,但变暗的叠加层会保持(它也会禁止用户交互)。
叠加后面显示的内容会根据拒绝的权限进行更改。
错误仅发生在具有Android N和Android O的设备上,M在拒绝后看起来很完美,而较低的api级别没有运行时权限,因此他们也在完成工作。
一些统计数据:
还有其他许可请求,它们正常工作(例如位置) 只有为GET_ACCOUNTS(联系人权限组)显示的对话框才能处理叠加权限。
如果有人可以给我一些提示,那可能会存在我没看到的依赖关系,那会很棒。
非常感谢所有阅读此内容的人,给我的问题一些想法,即使没有解决方案也能分享类似的故事。每个提示或输入将不胜感激:D
更新
我删除了权限对话框并将accountChooser呈现给用户,但不当行为仍然存在。唯一的区别是,即使在选择帐户(并因此授予此帐户的权限)之后,覆盖仍然存在。在后台应用程序可见,我可以验证功能功能和在线数据。
答案 0 :(得分:0)
经过长时间的搜索,它似乎不是权限对话框或帐户选择器的问题,而是底层的progressDialog(通过按下按钮激活)的问题。 现已弃用的progressDialog已启动,并且背景为灰色且处于非活动状态。现在,出现了两个正式可疑的对话框。在确认之后,它们被正确隐藏了。无效的灰色叠加是旧进度对话框的一部分。 我确定该错误是由于隐藏两个对话框而中断的progressDialog时出现的计时问题引起的。
对我来说,解决方案是废弃旧的progressDialog并构建一个替换项(自定义alertdialog),该替换项在单独的线程中显示和取消。自定义对话框会立即隐藏,甚至灰色的覆盖层也会正确消失。
谢谢大家,我希望这可以帮助其他人更快地找到他们的解决方案;)