2013-05-22 16 views
7

Skonfigurowałem aplikację Java, w której tworzę pakiet 4 kart. Problem polega na tym, że wszystkie karty nie wchodzą od razu. Czasami pojawia się tylko jeden, a potem kilka sekund lub minut później pojawiają się pozostałe karty. Jak mogę je wszystkie pokazać jednocześnie na zestawie słuchawkowym?Jak wysłać wszystkie karty w tym samym czasie?

edycja: Próbowałem stronicowania HTML i to nie zadziałało, a teraz myślę, że jestem bardziej zdezorientowany. Więc w moim senario tutaj chcę wysłać kilka punktów orientacyjnych do użytkownika, do którego mogą się poruszać. Chcę wszystkie punkty orientacyjne w pakiecie, chcę mieć okładkę pakietu, która nie jest opcją w pakiecie, mówiąc: "tu są twoje punkty orientacyjne", i chciałabym, żeby pakiet dotarł do użytkownika w tym samym czasie . Jak mogę to osiągnąć?

TimelineItem timelineItemEmpire = new TimelineItem(); 
timelineItemEmpire.setText("Empire State Building"); 

// Triggers an audible tone when the timeline item is received 
timelineItemEmpire.setNotification(new NotificationConfig().setLevel("DEFAULT")); 
Location empireLoc = new Location(); 
empireLoc.setLatitude(40.748492); 
empireLoc.setLongitude(-73.985868); 
timelineItemEmpire.setLocation(empireLoc); 

// Attach an image, if we have one 
URL url = new URL(WebUtil.buildUrl(req, "/static/images/empirestate.jpg")); 
timelineItemEmpire.setBundleId(bundleId); 

List<MenuItem> menuItemList = new ArrayList<MenuItem>(); 
menuItemList.add(new MenuItem().setAction("NAVIGATE")); 
timelineItemEmpire.setMenuItems(menuItemList); 

MirrorClient.insertTimelineItem(credential, timelineItemEmpire, contentType, url.openStream()); 

TimelineItem timelineItemCP = new TimelineItem(); 
timelineItemCP.setText("Central Park"); 

// Triggers an audible tone when the timeline item is received 
timelineItemCP.setNotification(new NotificationConfig().setLevel("DEFAULT")); 

// Attach an image, if we have one 
URL url3 = new URL(WebUtil.buildUrl(req, "/static/images/central_park.jpg")); 
timelineItemCP.setBundleId(bundleId); 

Location cpLoc = new Location(); 
cpLoc.setLatitude(40.772263); 
cpLoc.setLongitude(-73.974488); 
timelineItemCP.setLocation(cpLoc); 
timelineItemCP.setMenuItems(menuItemList); 

MirrorClient.insertTimelineItem(credential, timelineItemCP, contentType, url3.openStream());  

TimelineItem timelineCover = new TimelineItem(); 
timelineCover.setText("Nearby Landmarks"); 
timelineCover.setBundleId(bundleId); 

// Triggers an audible tone when the timeline item is received 
timelineCover.setNotification(new NotificationConfig().setLevel("DEFAULT")); 

// Attach an image, if we have one 
URL url4 = new URL(WebUtil.buildUrl(req, "/static/images/bundle_cover.jpg")); 

MirrorClient.insertTimelineItem(credential, timelineCover, contentType, url4.openStream()); 
+0

Wygląda na to, że potrzebuję stronicowania HTML. Próbujesz tego teraz. – Pickles

+0

OK wygląda na to, że stronicowanie też nie działa. – Pickles

Odpowiedz

6

Musisz ustawić zasób isBundleCover do true na okładce; tj .:

timelineCover.setIsBundleCover(true); 

To sprawi, że punkt wejścia do wiązki i zapobiec przed wyświetlane w wiązce, jak opisano here.

Ponadto można użyć BatchRequest, aby upewnić się, że są one wysyłane razem; np.:

BatchRequest batch = MirrorClient.getMirror(null).batch(); 
BatchCallback callback = new BatchCallback(); 

for (TimelineItem item : items) { 
     MirrorClient.getMirror(userCredential).timeline().insert(item).queue(batch, callback); 
} 

batch.execute(); 
+0

Wielkie dzięki! To działało świetnie. Czy otrzymałeś to z jakiejś dokumentacji, którą przegapiłem online? Jeśli tak, możesz wskazać mi to. – Pickles

+0

Fajnie - widziałem metodę setIsBundleCover przeglądającą dokumenty wspomniane w powyższej odpowiedzi oraz czytanie klasy BatchRequest za pośrednictwem projektu Google Quickstart. – MikeV