喜欢确认我们是否可以设置android:exported="false"
,例如ID服务和消息服务。
我通过保持android:exported="false"
和通知工作正常进行测试。
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service
android:name=".MyFirebaseInstanceIDService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
firebase-messaging库以低优先级(-500(的无关FirebaseMessagingService
导出。您可以在合并的AndroidManifest.xml中看到它。此服务可以处理携带通知的推送消息,例如您可以通过Firebase Console发送的通知。
如果您的专业服务类未导出,则系统将将消息从Google服务软件包路由到此无专业服务,并且通知将正常工作。
,但这意味着您将无法在接收消息或处理自定义数据有效载荷时执行其他操作。
您应该导出服务,以确保按照@Guest
指定的类处理。<service
android:name=".services.MyFirebaseMessagingService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>