2015-05-03 26 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,你可以手动 –