menuItems中不存在“OPEN_URI”的菜单项返回

时间:2014-02-28 20:17:25

标签: google-glass google-mirror-api google-gdk

我有一张卡片被镜像api插入我的时间轴。

该卡有3个选项:SCAN,REPLY,DELETE。

Expected->条形码测试[SCAN,REPLY,DELETE]
Received->条形码测试[回复,删除]

“回复”和“删除”选项仅在菜单项上返回。如果我将'OPEN_URI'更改为'CUSTOM',它会返回但不会做我希望做的事情,这是打开我的android.scan。(这不存在我的设备)

我在此处以及关于创建menuItems的Mirror-API文档中执行了类似的步骤 https://developers.google.com/glass/v1/reference/timeline#menuItems

Opening GDK Glassware through Mirror API Glassware MenuItem

 .mirror.timeline.insert(
    {
        "text": "Barcode Test",
        "callbackUrl": "https://mirrornotifications.appspot.com/forward?url=http://localhost:8081/reply",
        "menuItems": [
            {
              "action": "OPEN_URI",
              "id": "complete",
              "payload": "com.google.zxing.client.android.SCAN",
              "values": [{
                "displayName": "Scan",
                "iconUrl":"com.google.zxing.client.android.SCAN"
              }]
            },
            {"action": "REPLY"},
            {"action": "DELETE"}
        ]
    }
  )

1 个答案:

答案 0 :(得分:3)

OPEN_URI菜单项要求您为有效负载指定有效的URI。

要使用网络浏览器打开网页,这看起来就像您将其放入普通的桌面网络浏览器中,因此您的插入内容应该是这样的:

 .mirror.timeline.insert(
    {
        "text": "Barcode Test",
        "callbackUrl": "https://mirrornotifications.appspot.com/forward?url=http://localhost:8081/reply",
        "menuItems": [
            {
              "action": "OPEN_URI",
              "id": "complete",
              "payload": "http://example.com",
              "values": [{
                "displayName": "Scan",
                "iconUrl":"http://example.com/icon.png"
              }]
            },
            {"action": "REPLY"},
            {"action": "DELETE"}
        ]
    }   )

您还可以使用OPEN_URI使用自定义协议在Android应用上发起活动。

我对您尝试使用的扫描仪的实施情况了解不多,但是您可以通过以下方式为自己的GDK应用程序连接它。

您需要在AndroidManifest.xml中指定自定义协议,方法是添加以下内容:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.BROWSABLE" />
  <category android:name="android.intent.category.DEFAULT" />
  <data android:scheme="exampleprotocol" />
</intent-filter>

您必须在Mirror API时间轴项目中指定具有该协议的URI。您的插入代码可能如下所示:

 .mirror.timeline.insert(
    {
        "text": "Barcode Test",
        "callbackUrl": "https://mirrornotifications.appspot.com/forward?url=http://localhost:8081/reply",
        "menuItems": [
            {
              "action": "OPEN_URI",
              "id": "complete",
              "payload": "exampleprotocol://scan",
              "values": [{
                "displayName": "Scan",
                "iconUrl":"http://example.com/scan.png"
              }]
            },
            {"action": "REPLY"},
            {"action": "DELETE"}
        ]
    }
  )