gpt4 book ai didi

android - 如何解决有关导出的 Firebase 消息服务实现的 android lint 投诉?

转载 作者:IT王子 更新时间:2023-10-29 00:04:03 26 4
gpt4 key购买 nike

按照 Google developer instructions on implementing Firebase in my app ,我注意到 android lint 提示。

我们的想法是我们必须实现两个继承自 Firebase 服务的服务:

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { ... }

public class MyFirebaseMessagingService extends FirebaseMessagingService { ... }

然后在 list 中注册这些服务。但是,它并不十分完美。特别是,这两个推荐的 AndroidManifest.xml 服务条目不包含任何特殊权限:

<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

<service android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>

所以 linter 说:

Exported services (services which either set exported=true or contain an intent-filter and do not specify exported=false) should define a permission that an entity must have in order to launch the service or bind to it. Without this, any application can use this service.

我是否应该将此属性添加到每个服务标签并完成它

tools:ignore="ExportedService"

或者在这种情况下有更好的方法吗?我的意思是,像这样公开这些特定的 Firebase 派生服务是否安全?

最佳答案

你问:...像这样公开这些特定的 Firebase 派生服务是否安全?如果你相信这些服务的 list 文件中的注释。

在 Android Studio 中,打开应用的 AndroidManifest.xml 文件。在窗口底部,选择 Merged Manifest 选项卡。滚动以找到 FirebaseMessagingService 的条目。双击包含服务名称的行。服务的 list 文件应该会打开,您会看到:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.firebase.messaging">
<uses-sdk android:minSdkVersion="14"/>

<application>

<!-- FirebaseMessagingService performs security checks at runtime,
no need for explicit permissions despite exported="true" -->
<service android:name="com.google.firebase.messaging.FirebaseMessagingService" android:exported="true">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

</application>
</manifest>

注意注释:FirebaseMessagingService 在运行时执行安全检查,尽管exported="true"

不需要显式权限

您可以对 FirebaseInstanceIdService 执行相同操作并查看相同的注释。

如果您相信评论(我相信),您可以放心地忽略 lint 警告或禁用检查。

关于android - 如何解决有关导出的 Firebase 消息服务实现的 android lint 投诉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com