2015-03-01 1 views
0

Je crée un cadran qui peut avoir la couleur personnalisée grâce à une application qui est sur le téléphone.Comment appeler un élément de données enregistré dans Android Wear?

J'ai vu des exemples utilisent les DataApi et DataItem pour enregistrer/charger les paramètres.

Le problème que je rencontrais est que lorsque je change à un autre et revenir au cadran, toutes les valeurs à l'intérieur du DataMap semble être remis à null ou 0.

Voici un échantillon de ma méthode de onCreate() le Porter au cadran, qui va essayer de charger la dernière couleur utilisée:

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(); 
     } 
    }); 

Notez que la ligne mSelectedColor = dataMap... retournera 0.

Voici l'exemple de code de l'application mobile stockera ces données:

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

Envoi/retreiving les œuvres de valeur de couleur lors de l'exécution, et onDestroy() ou onStop() ne sont pas modifier les données à 0.

Sont dataItems automatiquement « disposés » lorsqu'une activité/watchface est fermé, ou suis-je en train de mettre en œuvre cette chose mal?

Merci pour les aides!

Répondre

0

Je pense que vous avez la mauvaise constante sur votre appel getInt. COLOR_PATH est le chemin URI, COLOR_KEY est la clé de la int que vous essayez de récupérer. Vous devriez avoir:

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

Oh mec ... je ne peux pas croire que j'ai fait une erreur aussi évidente:/ Merci beaucoup! – JTY