2015-05-03 6 views
0

Я изучаю передачу данных в износе android. Я понимаю, что и мобильные, и ночные приложения должны подключаться к DataItem через API сервисов Google, чтобы читать данные от того или другого.Чтение sharedpreference на мобильных устройствах при запуске приложения

У меня есть данные, сохраненные в sharedpreference в мобильном приложении. Только когда я открываю приложение для ношения, я хочу прочитать данные из sharedpreference в мобильном приложении, чтобы отображать их на изнашивании.

Было бы так, когда бы мобильное приложение обновляло эти данные в sharedpreference, эта деятельность связана с API сервисов Google и помещает запрос в DataItem. Тогда приложение для ношения будет слушать изменения WearableListenerService?

Я предпочитаю не иметь сервис, работающий все время, по крайней мере, не на мобильной стороне. Какой был бы подход к этому?

ответ

0

Это был бы подход, но для того, чтобы избавить вас от хлопот, это уже есть библиотека, которая это делает.

WearSharedPreferences

+0

Я ищу, чтобы узнать, вместо того, чтобы использовать сторонний инструмент. Если мне нужно обновить приложение для ношения при открытии этой операции, не будет ли WearableListenerService перегруженным? – awonderer

0

для данных передачи вы можете использовать библиотеку Эммет

https://github.com/florent37/emmet

Мы можем себе представить протокол как этот

public interface SmartphoneProtocole{ 
    void getStringPreference(String key); 
    void getBooleanPreference(String key); 
} 

public interface WearProtocole{ 
    void onStringPreference(String key, String value); 
    void onBooleanPreference(String key, boolean value); 
} 

износ/WearActivity.java

//access "MY_STRING" sharedpreference 
SmartphoneProtocole smartphoneProtocol = emmet.createSender(SmartphoneProtocole.class); 
emmet.createReceiver(WearProtocole.class, new WearProtocole(){ 

    @Override 
    void onStringPreference(String key, String value){ 
     //use your received preference value 
    } 

    @Override 
    void onBooleanPreference(String key, boolean value){ 

    } 

}); 

smartphoneProtocol.getStringPreference("MY_STRING"); //request the "MY_STRING" sharedpreference 

мобильный/WearService.java

final WearProtocole wearProtocol = emmet.createSender(WearProtocole.class); 
emmet.createReceiver(SmartphoneProtocol.class, new SmartphoneProtocol(){ 

    //on received from wear 
    @Override 
    void getStringPreference(String key){ 
     String value = //read the value from sharedpreferences 

     wearProtocol.onStringPreference(key,value); //send to wear 
    } 

    @Override 
    void getBooleanPreference(String key){ 

    } 

});  
+1

Я заинтересован в обучении, а не в использовании абстрактного инструмента. Я рассмотрю код в этой библиотеке. Какое преимущество приносит вам эта библиотека? – awonderer

+0

это быстрее использовать, но да, это просто приложение google message api, вы можете сделать это вручную –