小编Leo*_*san的帖子

阻止第三方图书馆获取我的推送通知

我的应用程序正在实施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来传递推送通知,并且我项目中包含的任何第三方库都可以注册以获取推送通知,有没有办法防止这种情况发生?

观察,手动禁用所有未知的接收器可以防止这种情况,但是随后库不再收到通知,因此我破坏了其功能。

android firebase firebase-cloud-messaging

5
推荐指数
1
解决办法
226
查看次数