2016-01-15 52 views
2

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

回答

1

我有一个没有UI屏幕的应用程序。

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

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

我不知道“spinner screen”是什么。据我所知,一个服务需要,它不具有运行许可的推荐模式是:

  1. Notification,让用户知道该服务不能没有这个权限开展工作。

  2. Notification触发Activity可以呼叫requestPermissions()。或者,此活动可以有Theme.Translucent.NoTitleBar,因此唯一可见的用户界面是权限对话框。

  3. 如果onRequestPermissionResult()表明您具有的权限,该活动可以告诉服务先走(例如,通过对startService()的调用),然后finish()本身。如果onRequestPermissionResult()表示用户拒绝了该权限,请执行任何有意义的操作(例如,再次显示Notification,正常关闭,向用户建议用户卸载该应用程序)。

+0

此外,您必须意识到,用户可以在设置页面中关闭应用程序的某些权限。 – Beemo

+1

对不起,我是一位OEM开发人员,负责预装系统应用程序。 APK没有UI/Activity,它为其他应用程序提供AIDL。 – Sai

相关问题