2013-12-13 3 views
0

저는이 모든 용도로 .NET Google 미러 API 라이브러리를 사용하고 있습니다.미러 API : 사용자가 맞춤 메뉴 항목을 선택할 때 알림을받지 못합니다.

나는 포함하는 새로운 타임 라인 항목을 삽입하여 시작 내장 삭제 메뉴 항목 플러스 사용자 정의 메뉴 항목 : 지정하지 작업에

TimelineItem item = new TimelineItem() { 
    Text = "Test Item", 
    Notification = new NotificationConfig() { Level = "DEFAULT" }, 
    MenuItems = new List<MenuItem>() { 
    new MenuItem() { Action = "DELETE" }, 
    new MenuItem() { 
     Action = "CUSTOM", 
     Id = "report", 
     Values = new List<MenuValue>() { DisplayName = "Report" } 
    } 
    } 
} 

나는 또한 알림을 타임 라인에 가입하고있어, (그래서 그것을 모든 작업을 받아야합니다.) 내 Glass에서 '보고서'메뉴 항목을 선택하면 구독이 알림을받지 못합니다. 내 Glass에서 '삭제'메뉴 항목을 선택하면 구독에 대한 알림이 표시되며, 삭제에는 '삭제'및 '보고서'작업이 모두 포함됩니다.

사용자 지정 메뉴 항목에 대한 알림을 받기 위해 필요한 특별한 것이 있습니까?

답변

0

DELETE와 같은 내장 메뉴 이벤트를 받고 있지만 사용자 정의 메뉴 이벤트를받지 못하면 유일한 문제점은 사용자 정의 이벤트를 처리하는 것이지 가져 오지 못하는 것입니다.

테스트하려면;

  1. 것은 당신이 (당신은 당신의 코드를 공유 , 나는 당신이 그것을 추가하는 것을 참조) timelineItem에 사용자 정의 메뉴 항목을 추가하는
  2. 당신이 구독 한 것을 썼다 (업데이트를 타임 라인 구독 있는지 확인 DELETE 메뉴 이벤트가 있음)
  3. 사용자 정의 메뉴 항목에 페이로드 속성을 추가하십시오.
  4. notifyCallback 서블릿에서 해당 Payload 값을 처리하십시오.

이 내장 및 사용자 정의 알림을 처리하기위한 JAVA 코드는, 나는 당신이 .NET과 유사한 코드를 작성할 수 있습니다 같아요. 논리는 동일합니다

추가 사용자 정의 메뉴 항목 :

List<MenuValue> menuValues = new ArrayList<MenuValue>(); 
menuValues.add(new MenuValue().setDisplayName("Test it!")); 
menuItemList.add(new MenuItem().setValues(menuValues).setId("MY_CUSTOM_MENU_ITEM_ID").setAction("CUSTOM").setPayload("MY_CUSTOM_MENU_ITEM")); 
timelineItem.setMenuItems(menuItemList); 

처리 사용자 정의 메뉴 항목 :

// notificationString comes from inputStream of Mirror API's notify request. 
Notification notification = jsonFactory.fromString(notificationString, Notification.class); 
if (notification.getUserActions().contains(new UserAction().setType("DELETE"))) { 
    LOG.info("It was a DELETE of a timeline card."); 
} else if (notification.getUserActions().contains(new UserAction().setType("CUSTOM").setPayload("MY_CUSTOM_MENU_ITEM"))) { 
    LOG.info("It was a MY_CUSTOM_MENU_ITEM of a timeline card."); 
}