Che*_*eng 10 android firebase-cloud-messaging
基于https://developer.android.com/guide/topics/manifest/service-element
\n关于意义android:exported
\n\n其他应用程序的组件是否可以调用该服务\xe2\x80\x94 或与其交互\xe2\x80\x94 如果可以,则为“true”,如果不能,则为“false”。当值为“false”时,只有同一应用程序的组件或具有相同用户 ID 的应用程序才能启动服务或绑定到该服务。
\n
当我查看代码时https://firebase.google.com/docs/cloud-messaging/android/client
\n<service\n android:name=".java.MyFirebaseMessagingService"\n android:exported="false">\n <intent-filter>\n <action android:name="com.google.firebase.MESSAGING_EVENT" />\n </intent-filter>\n</service>\nRun Code Online (Sandbox Code Playgroud)\n我认为当我们收到推送通知时,是外部 Android 系统(被视为“其他应用程序”)调用我们的应用程序代码。如果是这样,为什么android:exported上述情况是错误的?
如果它是调用我们的应用程序代码的外部应用程序,这不是应该是真的吗?
\n谢谢。
\n小智 9
如果你去查看firebase-message的Android Manifest,你可以发现FirebaseInstanceIdReceiver它是实际Service用来接收消息的。
另请查看此 PR https://github.com/firebase/quickstart-android/pull/850:
将 FirebaseMessagingServices 设置为导出=“false”以明确阻止其他应用程序向其发送消息。
| 归档时间: |
|
| 查看次数: |
4368 次 |
| 最近记录: |