cda*_*hms 9 permissions android
有人可以总结将targetSdkVersion设置为22以避免处理运行时权限的缺点吗?
在阅读了Google文档以及其他一些Stack Overflow帖子之后,我发现的唯一不足之处是用户可以在安装时授予权限,然后进入他们的操作系统设置并撤销该特定应用的特定权限,然后再次运行应用程序.然而,从一些例子中我发现在代码中处理这并不困难.
这是否是使用targetSdkVersion 22在安装时强制权限的唯一缺点?这些事情会在未来几年保持这种状态吗?
另外,例如,如果我在build.gradle文件中使用这些设置:
compileSdkVersion 24
buildToolsVersion "24.0.1"
minSdkVersion 19
targetSdkVersion 22
Run Code Online (Sandbox Code Playgroud)
我仍然可以在应用程序中访问API 23和24功能,还是仅限于22及更早版本?
在有人回答"最佳做法是不按照谷歌推荐的方式在运行时根据需要执行此操作"时,是的,我当然知道这一点.是的,我也知道有些例子试图提供锅炉板代码以询问运行时权限,例如:
https://github.com/googlesamples/easypermissions
但是至少有两种情况我可以想到在安装时请求权限并且如果未授予权限则不安装应用程序是非常有利的:
1)假设我报告的那个人在工作周的一半时间问:"你可以把星期五会议的概念验证Android应用程序放在一起,这个会议会让XYZ显示我们当天有一些访问者吗?" 如果我必须拼凑一个快速的alpha版本的应用程序,我只有几天时间来完成它,并且将基本功能放在一起需要很长时间,而应用程序将需要4个权限,它会要在安装时为alpha版本要求所有权限要好得多,所以我有时间花在应用程序功能上.然后,如果我继续前进,当我将应用程序移至测试版然后再移至最终版时,根据需要在运行时逐个更改权限请求.
2)某些应用程序绝对需要某些权限才能使用.例如,如果我正在编写一个OpenCV应用程序,该应用程序从相机中获取图像,然后根据图像中的内容执行某些操作,那么最好不要在用户开始时安装此类应用程序.不愿意授予相机许可.
我真的希望Google在安装时作为选项请求/要求权限,并提供在运行时请求权限的选项.是否有任何负面的开发人员反馈,只能决定是否可以在运行时请求权限?谷歌是否可能在安装时或未来版本的运行时允许许可请求,在这种情况下,我可以在过渡期间简单地使用targetSdkVersion 22选项?
这是否是使用targetSdkVersion 22在安装时强制权限的唯一缺点?
targetSdkVersion不可以.例如,除非您是24或更高,否则Toast在尝试在分屏模式下使用您的应用时,Android 7.0+设备用户将获得"此应用可能不支持分屏" .
此外,关于运行时权限,请记住,targetSdkVersion22或更低的a表示在安装时将提示用户输入所有请求的权限.您似乎认为这是积极的.潜在用户可能不同意.如果在安装时请求各种权限的App A和没有安装时的App B之间做出选择,用户将倾向于选择应用B,没有强烈的理由去使用App A.随着时间的推移,Android 6.0+推出更多在更多用户中,在安装时请求权限的应用程序将被视为未维护或写得不好,因为用户预计不必事先同意权限.
这些事情会在未来几年保持这种状态吗?
没有.
我还可以在应用中访问API 23和24功能吗?
是的,虽然有些人可能会因你的不同而表现不同targetSdkVersion.
Google是否可能在安装时或未来版本的运行时允许权限请求
一切皆有可能.一般来说,谷歌不讨论这样的未来计划.
| 归档时间: |
|
| 查看次数: |
4833 次 |
| 最近记录: |