Leo*_*san 5 android firebase firebase-cloud-messaging
我的应用程序正在实施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来传递推送通知,并且我项目中包含的任何第三方库都可以注册以获取推送通知,有没有办法防止这种情况发生?
观察,手动禁用所有未知的接收器可以防止这种情况,但是随后库不再收到通知,因此我破坏了其功能。
我不确定 FCM 是否使用有序广播,但如果使用,那么您必须:
BroadcastReveiver(例如在 中AndroidManifest.xml)并且abortBroadcast()在实现中调用onReceive()以防止任何其他广播接收器接收广播。https://developer.android.com/reference/android/content/BroadcastReceiver.html#abortBroadcast()
它可能对你有帮助。
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |