WearableListenerService 的权限

2024-01-10

我已经实现了WearableListenerService https://developer.android.com/reference/com/google/android/gms/wearable/WearableListenerService.html在我的主应用程序和配套的 Wear 应用程序中。在清单中,服务需要声明为android:exported="true"(或者根本没有声明并默认为true)因为它是由 Google Play 服务启动的。系统上的任何应用程序都可以调用没有权限的导出服务,但我找不到正确的权限来添加到服务声明中以保护它。我查看了手机和 Wear 设备上的权限pm list permissions但我没有看到任何看起来像我需要的东西。

  1. 我可以/应该添加权限来保护我的服务吗?
  2. 如果不是,通过检查调用者的包名称来手动保护服务是否是一个好主意?

了解如何在 Android Wear 上实现 WearableListenerService 的最佳方法是查看 SDK 提供的现有示例之一。如果您查看 $SDK/samples/android-20/wearable/DataLayer 中包含的 DataLayer 示例,它具有您想要执行的操作的完整实现。

如果您查看可穿戴设备的 AndroidManifest.xml,您可以看到它具有以下内容:

    <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

    <service
            android:name=".DataLayerListenerService" >
        <intent-filter>
            <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
        </intent-filter>
    </service>

为了您的安全考虑......当我们在清单中声明一个服务并为其添加过滤器时,它会自动成为导出的服务。所以一般来说,其他应用程序可以绑定到该服务。对于 WearableListenerService,框架中会进行安全检查,以确保绑定到该服务的代理是 Google Play 服务,这样其他人就无法真正绑定到该服务,除非应用程序开发人员公开其他意图过滤器(在这种情况下)目的是让其他人访问它。

因此,如果您以与 Wear SDK 示例相同的方式实现代码,您的应用程序应该是安全的,并且您无需担心任何额外的权限等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WearableListenerService 的权限 的相关文章

随机推荐