首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何只允许我的同伴手表应用程序连接到手持设备上的可穿戴侦听器服务?

如何只允许我的同伴手表应用程序连接到手持设备上的可穿戴侦听器服务?
EN

Stack Overflow用户
提问于 2016-11-08 18:53:56
回答 1查看 331关注 0票数 2

我想确保在我的手持设备上运行的WearableListenerService只能通过我的同伴应用程序访问。我认为创建一个自定义许可将是采取的途径,但我面临的问题,这种方法,无法获得可穿戴成功绑定到手持设备,我会得到以下例外,我的手持设备;

代码语言:javascript
复制
Permission Denial: Accessing service ComponentInfo{com.mypackage.android/com.mypackage.android.androidwear.service.WearListenerService} from pid=4868, uid=10014 requires com.mypackage.android.WATCHAPP
WearableService: bind: Permission denied connecting to ServiceRecord[com.mypackage.android.androidwear.service.WearListenerService, events=1, bound=false, [Event[79380002: onMessageReceived, event=requestId=16741, action=/start-activity, dataSize=26, source=31c5457d]]]
                                              java.lang.SecurityException: Not allowed to bind to service Intent { act=com.google.android.gms.wearable.BIND_LISTENER cmp=com.mypackage.android/.androidwear.service.WearListenerService }
                                                  at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1437)
                                                  at android.app.ContextImpl.bindService(ContextImpl.java:1395)
                                                  at android.content.ContextWrapper.bindService(ContextWrapper.java:632)
                                                  at android.content.ContextWrapper.bindService(ContextWrapper.java:632)
                                                  at android.content.ContextWrapper.bindService(ContextWrapper.java:632)
                                                  at aeim.a(:com.google.android.gms:6693)
                                                  at aeim.a(:com.google.android.gms:1378)
                                                  at aeim.handleMessage(:com.google.android.gms:1295)
                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                  at android.os.Looper.loop(Looper.java:158)
                                                  at android.os.HandlerThread.run(HandlerThread.java:61)

我尝试过以多种方式定义自定义权限,最初只在手持清单中定义,然后在两个清单中定义,以及尝试不同的保护级别(正常、签名、signatureOrSystem )。我甚至通过运行虚拟心理命令来验证许可是否成功地授予了我的可穿戴设备;

代码语言:javascript
复制
declared permissions:
  com.mypackage.android.WATCHAPP: prot=normal, INSTALLED
requested permissions:
  android.permission.WAKE_LOCK
  com.mypackage.android.WATCHAPP
install permissions:
  com.mypackage.android.WATCHAPP: granted=true
  android.permission.WAKE_LOCK: granted=true

我已经在我的服务中应用了一个数据过滤器,但是我想要强制执行的是,只有我的应用程序才能启动我的服务,而过滤器方法似乎还不够。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 19:17:11

你的手表应用程序和手持应用程序从不直接交谈。所有的数据层API都通过Google服务(异常的com.google.android.gms行)--首先在磨损端,然后在手持端。

因此,不可能添加一个自定义权限来保护数据层上的通信(因为Google服务应用程序永远不会添加您的自定义权限)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40494413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档