我们开发了一个谷歌玻璃器皿(基于时间轴)应用程序。首先,我们将向玻璃发送一些时间线卡,其中包含一些内置菜单项和自定义菜单项。
我们已经配置了代理 URL,用于获取时间线通知。
这么多天了,效果很好。
但是 Google Glass XE-16 更新后我们没有收到时间轴通知
您能指导我们解决这个问题吗?
嗨囚犯,
为了插入时间线,我们使用了以下代码:
global $base_url="http:\/\/mysite.com\/mirror"; $client = get_google_api_client(); $client->setAccessToken(get_credentials($_SESSION['userid'])); // 用于与 Mirror API 交互的玻璃服务 $mirror_service = new Google_MirrorService($client); $new_timeline_item = new Google_TimelineItem(); $new_timeline_item->setText('嘿,我正在测试新的'); $notification = new Google_NotificationConfig(); $notification->setLevel("默认"); $new_timeline_item->setNotification($notification); $menu_items = array(); $custom_menu_item = new Google_MenuItem(); $custom_menu_value = new Google_MenuValue(); $custom_menu_value->setDisplayName("添加项目"); $custom_menu_value->setIconUrl( $base_url . "/static/images/tulip.jpg"); $custom_menu_item->setValues(array($custom_menu_value)); $custom_menu_item->setAction("自定义"); $custom_menu_item->setId("add_to_cart_item"); // 这是您在通知 ping 上识别它的方式 array_push($menu_items, $custom_menu_item); $new_timeline_item->setMenuItems($menu_items); insert_timeline_item($mirror_service, $new_timeline_item, "image/jpeg", file_get_contents($base_url . "/static/images/tulip.jpg"));
为此,我们正在尝试添加新的自定义菜单和内置菜单,例如(固定、删除、共享、发送)
为了订阅通知,我们使用了 Google glass Php 镜像 api 函数。
subscribe_to_notifications($mirror_service, "时间线", $_SESSION['userid'], $base_url . "/notify.php");
这些在XE-16版本更新之前都工作正常。更新后我们无法收到时间线卡通知的通知
这是发送图像附件的一个已知问题。详情请看这里:
https://code.google.com/p/google-glass-api/issues/detail?id=491
因此,必须更改的代码部分是:
insert_timeline_item($mirror_service, $new_timeline_item, "image/jpeg", file_get_contents($base_url . "/static/images/tulip.jpg"));
需要更改为:
insert_timeline_item($mirror_service, $new_timeline_item, null, null);
并使用 setHTML 而不是 setText,并包含一个带有指向 Web URL 的 src 标记的 img 元素。例如:
<img src="http://example.com/static/images/tulip.jpg" />
请注意,您还必须将 Glass 恢复出厂设置。您可以通过尝试运行菜单命令来判断是否遇到问题,右下角的旋转双箭头被卡住,并且在 Glass 上的 ADB logcat 输出中可以看到崩溃堆栈跟踪。因此,要解决此问题,首先您必须不使用图像附件,其次您必须重置 Glass 以修复 Glass 上损坏的时间轴同步。