Android 解析、通知和构建类型

标签 android parse-platform notifications google-cloud-messaging

我目前正在使用 parse 在 Android 应用程序上发送和接收推送通知。
一切都很好,直到我为调试构建类型向我的 build.gradle 添加了一个应用程序 ID 后缀:​​

defaultConfig {
    applicationId "com.example.myapp"
    ...
}

buildTypes {
    debug {
        applicationIdSuffix ".debug"
        ...
    }
    release {
        ...
    }
}

现在我可以在 Parse 中看到新安装已在 applicationId 字段中注册:com.example.myapp.debug,因此在 list 文件中我使用了以下代码:

<receiver
        android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="${applicationId}" />

        </intent-filter>
    </receiver>

这样做我认为注册会根据构建类型动态变化。

实际上它不起作用:使用 .debug 后缀注册的安装没有 GCMSenderId 也没有 DeviceToken,所以我不能收到任何通知。我显然遗漏了一点,或者我不明白注册是如何工作的,但我不知道如何让它正常。
Parse 是使用 applicationId 来注册应用程序,还是使用真实的包名(用于 R)?

有没有人设法处理具有不同构建类型(applicationId 后缀)的解析通知?

最佳答案

好吧,我终于明白了。我忘记在权限声明中添加动态 applicationId...

<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />

问题已解决。

关于Android 解析、通知和构建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30501793/

相关文章:

android - 单击通知按钮后如何关闭状态栏/通知面板

java - Android Studio 中使用 OpenCV 和 Tensorflow 进行实时情绪检测

android - 从表 -Parse.com 获取所有记录

android - 在模拟器相机应用程序中看不到虚拟场景图像

javascript - 如何在 Parse Cloud Code 中更新用户 afterSave 中的另一个对象?

javascript - 许多请求一次解析

java - 带有某些标志的 Android 通知变得持续

java - Android 通知在现有 Activity 上打开

android - Skype 4 android,调用 Intent

android - LazyLoader imageLoader空指针异常?