我的应用程序正在实施FCM,因此我使用的是第3方库。我的问题是,每次我通过控制台发送通知时,第三方都已注册了这样的广播接收器
<receiver
android:name=".ThirdPartyReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
能够获取所有通知的内容,如何防止这种情况?atm我正在使用我的凭据初始化和使用firebase应用程序实例,如下所示:
FirebaseOptions.Builder()
.setApplicationId(id)
.setApiKey(api)
.setDatabaseUrl(databaseurl)
.setGcmSenderId(senderId)
.setProjectId(projectId)
.build()
Run Code Online (Sandbox Code Playgroud)
但是看起来FCM仅依靠packageName来传递推送通知,并且我项目中包含的任何第三方库都可以注册以获取推送通知,有没有办法防止这种情况发生?
观察,手动禁用所有未知的接收器可以防止这种情况,但是随后库不再收到通知,因此我破坏了其功能。