【问题标题】:Push notifications (GCM) permission at runtime?在运行时推送通知(GCM)权限?
【发布时间】:2016-09-14 14:43:15
【问题描述】:

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

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

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

<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。用户不应该能够选择是否允许推送通知吗?

【问题讨论】:

    标签: android push-notification google-cloud-messaging android-permissions


    【解决方案1】:

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

    不必请求推送通知权限。

    虽然联系人/位置是危险的权限,因为您正在访问用户数据。所以总是需要请求用户允许它。

    希望你能理解。 https://developer.android.com/guide/topics/security/permissions.html

    【讨论】:

    • @Umer 启用推送通知的“普通类别”中的权限名称是什么?
    • 如果您有 Internet 权限、已连接 Internet 和正确的 GCM 配置,您可以接收推送通知。
    • 那是一个签名权限,并且签名权限不是运行时权限系统的一部分。它们是根据签名匹配自动授予的。
    • 因此,由于不需要通过提示获得许可,因此提供提示是否仍然有用且用户友好......一些如何反应原生?感谢您的回答!
    • ACCESS_NOTIFICATION_POLICY :developer.android.com/reference/android/…
    猜你喜欢
    • 2018-09-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2013-02-02
    • 1970-01-01
    相关资源
    最近更新 更多