我有一个奇怪的问题。我正在集成一个使用FCM进行注册的库。但是,在我自己的应用程序中,我还需要FCM来检索一些消息。但是,似乎我不能注册相同的应用程序来接收来自两个渠道的消息(不同的服务器API ID)。 “外部”应用似乎用google-services.json覆盖了内部库
问题:是否可以使用两个不同的API密钥同时向包含的库和主应用程序接受FCM消息?
答案 0 :(得分:0)
确保通过FCM检索信息的方式正确。似乎是一种不好的做法。
您可以使用manifest merger来替换或替代meta-data elements。
<meta-data
android:name="fcm_key"
android:value="YOUR_KEY"
tools:node="replace" />
读取清单中的元数据
try {
ApplicationInfo ai =
getPackageManager().getApplicationInfo(activity.getPackageName(),
PackageManager.GET_META_DATA);
Bundle bundle = ai.metaData;
String myApiKey = bundle.getString("fcm_key");
} catch (NameNotFoundException e) {
Log.e(TAG, "Failed to load meta-data, NameNotFound: " +
e.getMessage());
} catch (NullPointerException e) {
Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage());
}