从另一个应用程序发送Firebase通知



是否有任何可能的方法可以在不使用Firebase API或连接到FCM服务器的情况下,使用来自另一个包(apk(的MainActivity.java中的代码从FirebaseMessagingService调用onMessageReceived

MyFirebaseMessagingService.java

public final class MyFirebaseMessagingService extends FirebaseMessagingService {
public void onMessageReceived(RemoteMessage remoteMessage) {
// I'm interested in this method
}
public void onNewToken(String str) {
// code
}
}

您需要阅读FirebaseInstanceIdReceiver的文档。这是接收FCM推送消息的BroadcastReceiver。它被合并在清单中,如下所示:

<receiver
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="YOUR_PACKAGE_NAME" />
</intent-filter>
</receiver>

如该文件所述:

com.google.android.c2dm.permission.SEND权限由Google Play服务持有。这将阻止其他应用程序调用广播接收器。

因此,除非您的代码运行在Google Play服务应用程序进程中,或者通过具有所需权限的root访问安装的其他类似进程中,否则不可能强制传递消息。

尝试从另一个包的MainActivity.java调用REST API。API文档可在此处找到。提供适当的服务器密钥以将FCM发送到另一个程序包的应用程序。

相关内容

  • 没有找到相关文章