我有两种不同风格的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>
我正确接收两种口味的推送通知。问题是,如果我在手机中安装了两种口味,我会同时推送两种口味。
似乎应用程序无法识别哪种风味推送属于。也许有人有同样的问题?
答案 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
}