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

Lan*_*ler 45 android push-notification google-cloud-messaging android-permissions

我已经读过,有必要在运行时向用户询问API 23及更高版本的某些权限.例如:android.permission.ACCESS_FINE_LOCATION.如果API为23或更高,是否有必要(甚至可能)要求在运行时使用GCM /推送通知的运行时权限?

我已经尝试requestPermissions在运行时使用该方法,但是当我将它与任何GCM /推送通知相关的权限一起使用时,它似乎不起作用(没有任何反应).

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

<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"/>
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激.

Ume*_*qas 109

实际上,推送通知权限属于正常类别权限,例如INTERNET权限,而非危险类别权限.

不必要求推送通知权限.

虽然联系人/位置是危险权限,因为您正在访问用户数据.因此始终需要请求用户允许它.

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

  • @alexanderdavide:当然!Android 13 (API 33) 引入了一种类似于 iOS 的新方式 - 使用推送通知需要权限: &lt;uses-permission android:name="android.permission.POST_NOTIFICATIONS"/&gt; https://developer.android.com/关于/版本/13/更改/通知权限 (4认同)
  • @Umer启用推送通知的"正常类别"中的权限名称是什么? (2认同)