2015-03-01 7 views
0

Я создаю часы, которые могут иметь цвет, настроенный через приложение, которое находится на телефоне.Как вызвать сохраненный файл данных в Android Wear?

Я видел примеры использования DataApi и DataItem для сохранения/загрузки настроек.

Проблема я встречая что когда я изменяю к другому и изменить циферблат назад, все значения внутри DataMap, кажется, сбрасывается в нуль или 0.

Вот пример моего onCreate() метода износозащитный циферблат, который будет пытаться загрузить последний использованный цвет:

PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiClient); 
    results.setResultCallback(new ResultCallback<DataItemBuffer>() { 
     @Override 
     public void onResult(DataItemBuffer dataItems) { 
     if (dataItems.getCount() != 0) { 
      for (int i = 0; i < dataItems.getCount(); i++) { 
       DataMapItem dataMapItem = DataMapIfromDataItem(dataItems.get(i)); 
       if (dataMapItem.getDataMap().containsKey(COLOR_KEY)) { 
        mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_PATH); 
        } 
       } 
      } 
      dataItems.release(); 
     } 
    }); 

Обратите внимание, что mSelectedColor = dataMap... линии будет возвращать 0.

Вот пример кода из мобильного приложения, будет хранить эти данные:

 PutDataMapRequest dataMap = PutDataMapRequest.create(COLOR_PATH); 
     dataMap.getDataMap().putInt(COLOR_KEY, mSelectedColor); 

Отправка/retreiving значение цвета работы во время работы, и onDestroy() или onStop() не изменяем данные обратно в 0.

ли dataItems автоматически «расположены», когда деятельность/watchface закрыт, или я реализую эту вещь неправильно?

Спасибо за помощь!

ответ

0

Я думаю, что у вас неверная константа на вашем звонке getInt. COLOR_PATH - путь URI, COLOR_KEY - это ключ int, который вы пытаетесь получить. Вы должны иметь:

mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_KEY); 
+0

О, человек ... не могу поверить, что совершил такую ​​очевидную ошибку:/ Огромное вам спасибо! – JTY