移动推送收到2种不同的口味

时间:2017-12-06 13:12:02

标签: android push-notification android-productflavors

我有两种不同风格的Android应用程序:

        first {
            applicationId 'com.test.first'
            resValue 'string', 'app_name', 'First'
            resValue 'string', 'host', 'app.first.com'
            resValue 'string', 'app_id', '3'
            resValue 'string', 'auth_client_id', 'xxx'
            versionCode 1
            versionName '1.0'
        }
        second {
            signingConfig signingConfigs.second
            applicationId 'com.test.second'
            resValue 'string', 'app_name', 'Second'
            resValue 'string', 'host', 'app.second.com'
            resValue 'string', 'app_id', '2'
            resValue 'string', 'auth_client_id', 'xxx'
            versionCode 1
            versionName '1.0'
        }

我的AndroidManifest.xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test">
    <permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <application>
         <receiver
            android:name="com.test.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>
    </application>
</manifest>

我正确接收两种口味的推送通知。问题是,如果我在手机中安装了两种口味,我会同时推送两种口味。

似乎应用程序无法识别哪种风味推送属于。也许有人有同样的问题?

1 个答案:

答案 0 :(得分:0)

我假设你的问题就像..

您的fcm / gcm项目包名称为"com.test" 然后你的Android应用程序有两种口味 namly

<强> 1。首先使用applicationId'com.test.first'

<强> 2。第二个是applicationId'com.test.second'

所以,如果你是因为你的flavors contain com.test,那么它会以两种方式获得,所以你可以手动管理或处理......比如

通过推送发送您的应用程序ID或任何风味识别标记,然后您必须在接收推送后管理它。

例如

发送推送第一口味(在你的第一个应用程序中)

if(data.first_flavor_token)
{
   //Create and show your push here
}

发送推送第二种味道(在你的第二个应用程序中)

if(data.second_flavor_token)
{
   //Create and show your push here
}