2015-05-03 43 views
0

我正在學習Android穿戴數據通信。我的理解是,移動和磨損應用都需要通過Google Services API連接到DataItem,以便從這一個或另一箇中讀取數據。在開始穿戴應用時閱讀手機上的sharedpreference

我有數據保存在移動應用程序的sharedpreference中。只有當我打開我的磨損應用程序時,我想從移動應用程序的sharedpreference中讀取數據以顯示磨損。

難道是每當移動應用程序在sharedpreference中更新此數據時,都會將該活動連接到Google Services API並將請求放入DataItem中。那麼Wear App會通過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

它使用起來更快,但是它只是附上一個谷歌郵件API,你可以手動 –

相關問題