运行时的推送通知 (GCM) 权限?

Push notifications (GCM) permission at runtime?

我了解到有必要在运行时向用户询问 API 23 及更高版本的某些权限。例如:android.permission.ACCESS_FINE_LOCATION。 如果 API 为 23 或更高,是否有必要(甚至可能)请求运行时权限以在运行时使用 GCM/push 通知?

我试过在运行时使用 requestPermissions 方法,但是当我使用任何 GCM/push 通知相关权限时它似乎不起作用(没有任何反应)。

为此,我在我的清单中拥有以下权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

用户知道的唯一权限是从 Play 商店下载应用程序时的 ACCESS_FINE_LOCATION。用户不应该能够选择他们是否允许推送通知吗?

其实Push Notification权限在Normal Category Permission像INTERNET权限不在Dangerous Category Permission.

不需要请求推送通知权限。

虽然 Contacts/Locations 是危险权限,因为您正在访问用户 data.so 总是需要请求用户允许它。

希望你明白。 https://developer.android.com/guide/topics/security/permissions.html