在Android Marshmallow中,应在需要时在运行时请求权限,而不是在安装应用程序时立即请求所有权限。但是,我似乎只能向活动请求权限,这是一个问题,因为我的应用程序仅包含服务。(为什么会这样,您可能会问?该应用程序内部捆绑了一个Android Wear表盘,并且所有手机所做的只是查找附近的照片以发送至手表-无需进行“活动”。但它确实需要位置权限。)因此,有什么方法可以向服务请求权限吗?还是以某种方式强制像过去一样在安装时授予权限?
3 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
requestPermission()只能从Activity和调用Service(不同于checkPermission()仅要求PackageManager)。因此,您需要做一些额外的工作来解决该问题;您确实需要Activity在应用程序中提供,例如,您Service可以检查所需的权限,如果尚未授予权限,它可以创建通知,并可以向用户提供描述性的简短消息,说明为什么存在通知以及当他们单击通知时需要做什么等
慕田峪9158850
TA贡献1794条经验 获得超7个赞
我同意,这对于服务非常麻烦,我认为您应该为此在Android Developer Preview页面上报告问题。
目前,我认为最好的解决方案是检查服务许可,如果缺少许可则显示通知。更好的是,创建一个DialogActivity以在用户按下通知时请求权限。
- 3 回答
- 0 关注
- 573 浏览
添加回答
举报
0/150
提交
取消