Search code examples
androidpush-notificationgoogle-cloud-messagingandroid-permissions

Push notifications (GCM) permission at runtime?


I have read that it is necessary to ask the user for some permissions at runtime for API 23 and up. For example: android.permission.ACCESS_FINE_LOCATION. Is it necessary (or even possible) to ask for a runtime permission for using GCM/push notifications at runtime if API is 23 or higher?

I have tried using the requestPermissions method at runtime, but it doesn't seem to work (nothing happens) when I use it with any GCM/push notification related permissions.

I have the following permissions in my Manifest for this purpose:

<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"/>

The only permission that the user knows of, is the ACCESS_FINE_LOCATION when downloading the app from Play Store. Shouldn't the user be able to choose whether or not they would allow push notifications?


Solution

  • Actually the Push Notification permission lie in Normal Category Permission like INTERNET permission not in Dangerous Category Permission.

    You don't have to ask for Push Notification permissions.

    While Contacts/Locations are the Dangerous permissions because you are accessing user data.so always needed to ask to user to allow it.

    Hope so you understand. https://developer.android.com/guide/topics/security/permissions.html