可以在Android M中获得服务请求吗?

时间:2016-01-15 18:51:29

标签: android android-permissions android-6.0-marshmallow

我认为在M中,requestPermissions()只能由Activity类调用。我有一个没有UI屏幕的应用程序。它作为后台服务运行。这是否意味着如果checkSelfPermissions返回被拒绝,我必须放置一个微调器屏幕?

1 个答案:

答案 0 :(得分:1)

  

我的应用没有用户界面屏幕。

然后它将永远不会运行,除非它预先安装在Android设备或自定义ROM上,或者它是其他应用程序的插件。否则,您的应用将永远保持停止状态。几乎每个通过普通渠道分发的应用程序,包括Play商店,都需要一项活动。

  

这是否意味着如果checkSelfPermissions返回被拒绝,我必须放置一个微调器屏幕?

我不知道“旋转屏幕”是什么。 AFAIK,需要其不具有的运行时权限的服务的推荐模式是:

  1. 提出Notification,让用户知道如果没有此权限,服务就无法完成工作。

  2. Notification触发可以调用Activity的{​​{1}}。可选地,此活动可以有requestPermissions(),因此唯一可见的UI是权限对话框。

  3. 如果Theme.Translucent.NoTitleBar表示您拥有该权限,则该活动可以告知服务继续(例如,通过致电onRequestPermissionResult()),然后startService()本身。如果finish()表示用户拒绝了该权限,请执行任何有意义的操作(例如,再次显示onRequestPermissionResult(),正常关闭,建议用户卸载该应用。)