服务可以在 Android M 中请求权限吗?
Can a service request for permission in Android M?
我认为在 M 中 requestPermissions() 只能由 Activity class 调用。我有一个没有 UI 屏幕的应用程序。它作为后台服务运行。这是否意味着如果 checkSelfPermissions returns 被拒绝,我必须放置一个微调屏幕?
I have an app that has no UI screen.
那么它永远不会 运行,除非它预装在 Android 设备或自定义 ROM 上,或者它是其他应用程序的插件。否则,您的应用程序将永远处于停止状态。几乎所有通过正常渠道(包括 Play 商店)分发的应用程序都需要 activity.
Does this mean that I have to put a spinner screen if checkSelfPermissions returns denied?
我不知道 "a spinner screen" 是什么。 AFAIK,对于需要 运行time 权限但它没有的服务的推荐模式是:
提出一个 Notification
,让用户知道如果没有此权限,该服务将无法运行。
让 Notification
触发可以调用 requestPermissions()
的 Activity
。可选地,这个 activity 可以有 Theme.Translucent.NoTitleBar
,所以唯一可见的 UI 是权限对话框。
如果 onRequestPermissionResult()
表示您有权限,activity 可以告诉服务继续(例如,通过调用 startService()
),然后 finish()
本身。如果 onRequestPermissionResult()
表示用户拒绝了权限,则执行任何有意义的操作(例如,再次显示 Notification
,正常关闭,建议用户卸载应用程序)。
我认为在 M 中 requestPermissions() 只能由 Activity class 调用。我有一个没有 UI 屏幕的应用程序。它作为后台服务运行。这是否意味着如果 checkSelfPermissions returns 被拒绝,我必须放置一个微调屏幕?
I have an app that has no UI screen.
那么它永远不会 运行,除非它预装在 Android 设备或自定义 ROM 上,或者它是其他应用程序的插件。否则,您的应用程序将永远处于停止状态。几乎所有通过正常渠道(包括 Play 商店)分发的应用程序都需要 activity.
Does this mean that I have to put a spinner screen if checkSelfPermissions returns denied?
我不知道 "a spinner screen" 是什么。 AFAIK,对于需要 运行time 权限但它没有的服务的推荐模式是:
提出一个
Notification
,让用户知道如果没有此权限,该服务将无法运行。让
Notification
触发可以调用requestPermissions()
的Activity
。可选地,这个 activity 可以有Theme.Translucent.NoTitleBar
,所以唯一可见的 UI 是权限对话框。如果
onRequestPermissionResult()
表示您有权限,activity 可以告诉服务继续(例如,通过调用startService()
),然后finish()
本身。如果onRequestPermissionResult()
表示用户拒绝了权限,则执行任何有意义的操作(例如,再次显示Notification
,正常关闭,建议用户卸载应用程序)。