我有一张卡片被镜像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"}
]
}
)
答案 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"}
]
}
)