gpt4 book ai didi

android - 如何检测 watch 中是否已经安装了我的Android应用的Wear应用

转载 作者:行者123 更新时间:2023-11-30 02:17:24 25 4
gpt4 key购买 nike

是否可以通过某种方式检测 watch 中是否已安装 Android 应用程序中的 Wear 迷你应用程序?

我有一个应用程序,在将 Wear 部件安装到 watch 之前不能在手机上使用,所以我想在此之前阻止所有交互。

关于应用程序更新,是否可以检测 Wear 部件是否已更新?

编辑:

看起来数据 API 甚至消息 API 调用都在安装应用程序后进行了缓冲和传送。然而,这并不能解决应用程序更新的问题。这可以通过接受的答案解决。

最佳答案

一种解决方案是使用 CapabilityClient( https://developers.google.com/android/reference/com/google/android/gms/wearable/CapabilityClient )。首先,您可以使用 NodeClient( https://developers.google.com/android/reference/com/google/android/gms/wearable/NodeClient) 检测可穿戴设备和手机是否已连接。下面我提到了在android中检测 watch 是否连接到手机的代码。

    Task<List<Node>> nodesTask = Wearable.getNodeClient(MainMobileActivity.this)
.getConnectedNodes();
nodesTask.addOnSuccessListener(new OnSuccessListener<List<Node>>() {

@Override
public void onSuccess(List<Node> nodes) {
nodeSize = nodes.size();
for (Node node : nodes) {
Wearable.getMessageClient(MainMobileActivity.this)
.sendMessage(node.getId(), MESSAGE_PATH, "Hello from AndroidWear".getBytes());
}

Log.d("Hello" , "Message sent to Cordova");
}
});

因此,nodeSize 表示连接了多少个节点/ watch 。

Wearable.getMessageClient(MainMobileActivity.this)
.sendMessage(node.getId(), MESSAGE_PATH, "Hello from AndroidWear".getBytes());

这段代码有助于将消息从手机发送到 watch 。现在来检测 watch 是否有应用程序。下面是它提到的代码。

    Task<CapabilityInfo> capabilityTask = Wearable.getCapabilityClient(this)
.getCapability(CAPABILITY_WEAR_APP, CapabilityClient.FILTER_REACHABLE);
capabilityTask.addOnSuccessListener(new OnSuccessListener<CapabilityInfo>() {
@Override
public void onSuccess(CapabilityInfo capabilityInfo) {
mWearNodesWithApp = capabilityInfo.getNodes();

}
});

因此,如果 mWearNodesWithApp 为 0,则表示应用程序未安装,如果为 1,则表示应用程序已安装。

CAPABILITY_WEAR_APP 应该是 String 类型,并且应该具有您在 wear.xml 中提及的磨损应用程序而非手机的值。请记住为 Phone 和 Wear 应用程序提及相同的 applicationId。

关于android - 如何检测 watch 中是否已经安装了我的Android应用的Wear应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074213/

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