我在运行棉花糖预览3的Nexus 5设备上安装了Airbnb,并且正在使用权限模型.我在使用他们的应用程序时发现了一个很大的奇怪之处.

通常,如果使用AccountManager getAccounts()方法获取在设备上注册的电子邮件帐户,则需要启用GET_ACCOUNTS权限才能使其正常工作.

但是,即使在我的应用程序中,即使我取消了GET_ACCOUNTS权限,他们仍然可以访问已注册的电子邮件帐户,实际上,这确实很奇怪(他们在电子邮件登录中具有自动完成功能).

这是否违反了具有运行时权限模型的目的?

解决方法:

Airbnb并非针对API 23,因此它们不使用运行时权限(当出现权限列表时,您可以在安装时看到此信息).相反,他们遵循compatibility model,在该位置用户仍可以以不会崩溃的方式禁用对应用程序的权限.

但是,兼容性模式(从Developer Preview 3开始)不允许用户禁用GET_ACCOUNTS的使用.实际上,如果未定位到API 23的开发人员未在CONTACTS组中使用任何其他运行时权限,则Contacts组甚至不会被禁用(即使从技术上讲它将包括GET_ACCOUNTS).

当然,一旦Airbnb移至目标API 23并使用运行时权限,那么如果他们想要检索除自己帐户以外的任何帐户,则他们需要请求联系人权限组使用GET_ACCOUNTS.

标签:android-appwidget,android-permissions,android

来源: https://codeday.me/bug/20191027/1947723.html

android 权限模型,android-棉花糖权限模型在Airbnb中的AccountManager getAccounts()异常,该怎么做?...相关推荐

  1. android棉花糖,Android-6.0 棉花糖权限的那点事

    Android6.0引入了全新的权限管理方式,也就是运行时权限,至于什么是运行时权限,我们先看一下6.0以前的权限处理. 6.0以前的权限 6.0以前的系统,我们在安装一个应用的时候会默认赋予所有权限 ...

  2. 谈谈Android 6.0运行时权限理解

    前言 谷歌在2015年8月份时候,发布了Android 6.0版本,代号叫做"棉花糖"(Marshmallow ),其中的很大的一部分变化,是在用户权限授权上,或许是感觉之前默认授 ...

  3. Android教程 -05 Android6.0权限的管理

    视频为本篇博客知识的讲解,建议采用超清模式观看, 欢迎点击订阅我的优酷 height="498" width="510" src="http://pl ...

  4. Android开发精要2--Android组件模型解析

    本文的主要内容如下: 2.1 基于Mashup的应用设计 2.2 界面组件Activity解析 2.3 服务组件Service解析 2.4 触发器组件BroadcastReceiver解析 2.5 数 ...

  5. 通过MACE在Android手机上部署深度学习模型

    1. MACE的环境搭建 参考我的博客:MACE的环境搭建--conda实现 2. 构建项目 (1)下载MACE项目到本地 git clone https://github.com/XiaoMi/ma ...

  6. Android 基础知识+app测试权限问题

    Android 基础知识(权限篇)** 前言 ​ Android是一个开源的,基于Linux的移动设备操作系统,主要用于移动设备,如智能手机和平板电脑.Android是由谷歌及其他公司带领的开放手机联 ...

  7. 蓝牙权限管理android,基于蓝牙与Android设备的控制系统设计

    3 Android设备软件设计本文引用地址:http://www.eepw.com.cn/article/264461.htm Android2.2版本以上才能很好的支持蓝牙功能,Android上的应 ...

  8. AndroidQ(九)Android Q隐私权:权限变更

    Android Q隐私权:权限变更 本文档介绍了权限模型的一些变更.这些变更有助于增强用户隐私. 其中一些变更会影响在Android Q上运行的所有应用,而其他变更仅会影响以Android Q为目标平 ...

  9. Android 在运行时请求权限

    2019独角兽企业重金招聘Python工程师标准>>> 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予.此方法可以简化 ...

最新文章

  1. MAC修改python和pip版本
  2. erlang四种启动监控策略
  3. Python单元测试框架Pyunit 的使用
  4. linux shell 学习小结
  5. 《Docker——容器与容器云》:第五章 构建自己的容器云
  6. leetcode309. 最佳买卖股票时机含冷冻期
  7. glup node 内存不够_Redis:内存被我用完了!该怎么办?
  8. Rancher Kubernetes Engine(RKE)正式发布:闪电般的Kubernetes安装部署体验
  9. 如何在通达信软件上随意画图_通达信指标公式编写教程:绘图函数DRAWLINE、DRAWTEXT 等...
  10. go语言和区块链实战从基础到项目 go开发工程师教程视频 go区块链视频教程合集
  11. Modbus-RTU入门篇
  12. 基于vue的手机阅读小说类webapp
  13. 数据导入与预处理-第8章-实战演练-数据分析师岗位分析
  14. 单体架构与微服务架构的区别
  15. 计算机学院开学发言,开学典礼 | 计控学院研究生代表发言稿
  16. 招银网络2018笔试分享
  17. 酷我音乐盒去广告(续)
  18. 【翻译】CEDEC2014[跨越我的尸体2]跨越Stylized Rendering
  19. 破解SQLYog30天试用方法
  20. 奥哲网络张华:蛰伏十五年的低代码平台或成未来主流

热门文章

  1. python小数点处理_如何在python中打小数点
  2. HDU 2977 Color Squares BFS
  3. ubuntu14.04安装搜狗输入法
  4. 鸿蒙开发中vp和fp是啥?
  5. 【Axure交互教程】购物车结算效果
  6. 金庸的小说人生(1)
  7. 计算机音乐技术的发展,计算机网络技术对音乐发展的影响探析
  8. 小实操(3): 利用键盘事件实现小人快跑
  9. 永磁同步电机弱磁控制建模仿真
  10. 2020.10.28----HashMap