전화 앱에서 클라우드의 데이터를 가져 와서 DataMap을 통해 페어링 된 시계에 동기화하는 시계면에서 Android Wear 용 서비스에서 데이터 API를 사용하고 있습니다. 앱. 그러나 웨어러블 측에서 올바르게 업데이트를 청취하고 UI를 다시 그리는 서비스를받는 방법에 대해서는 약간 분실되어 있습니다. 나는이 모든 일을 같은 봉사에서해야 하는가?시계 API 업데이트를 사용하여 시계 UI 업데이트
CanvasWatchFaceService.Engine을 확장하는 개인 내부 클래스에서 DataApi.DataListener 메서드를 구현하려고 시도했지만 작동하지 않는 것 같습니다.
@Override
public Engine onCreateEngine() {
return new Engine();
}
private class Engine extends CanvasWatchFaceService.Engine implements DataApi.DataListener {
// other events and methods...
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
for(DataEvent event : dataEvents) {
DataItem dataItem = event.getDataItem();
if(PATH.equals(dataItem.getUri().getPath())) {
DataMap dataMap = DataMapItem.fromDataItem(dataItem).getDataMap();
downloadedTrends = dataMap.getString(DATAMAP_KEY);
}
}
}
@Override
public void onDraw(Canvas canvas, Rect bounds) {
// use the changed data here to update the watch face UI
}
}
는 WearableListenerService을 연장하는 별도의 서비스를 사용하여 I되어야하고, 만약 그렇다면, 어떻게 시계 얼굴 서비스의 onDraw에서 데이터를 추출합니까? 콜백 외부에서 DataEventBuffer를 직접 탭 할 수 있습니까?
개인 내부 클래스에서 구현 중이므로 매니페스트의 BIND_LISTENER 인 텐트 필터와 관련이 있다고 생각합니다.
도움 주셔서 감사합니다.
우수. 내가 필요한 것. 나는 그것을 돌려 줄 것이다. 도와 주셔서 감사합니다 (다시!) – user2302078