我认为在M中,requestPermissions()只能由Activity类调用。我有一个没有UI屏幕的应用程序。它作为后台服务运行。这是否意味着如果checkSelfPermissions返回被拒绝,我必须放置一个微调器屏幕?
答案 0 :(得分:1)
我的应用没有用户界面屏幕。
然后它将永远不会运行,除非它预先安装在Android设备或自定义ROM上,或者它是其他应用程序的插件。否则,您的应用将永远保持停止状态。几乎每个通过普通渠道分发的应用程序,包括Play商店,都需要一项活动。
这是否意味着如果checkSelfPermissions返回被拒绝,我必须放置一个微调器屏幕?
我不知道“旋转屏幕”是什么。 AFAIK,需要其不具有的运行时权限的服务的推荐模式是:
提出Notification
,让用户知道如果没有此权限,服务就无法完成工作。
让Notification
触发可以调用Activity
的{{1}}。可选地,此活动可以有requestPermissions()
,因此唯一可见的UI是权限对话框。
如果Theme.Translucent.NoTitleBar
表示您拥有该权限,则该活动可以告知服务继续(例如,通过致电onRequestPermissionResult()
),然后startService()
本身。如果finish()
表示用户拒绝了该权限,请执行任何有意义的操作(例如,再次显示onRequestPermissionResult()
,正常关闭,建议用户卸载该应用。)