0

我正在学习 android wear 中的数据通信。我的理解是,移动和穿戴应用程序都需要通过 Google 服务 API 连接到 DataItem 才能从其中一个或另一个读取数据。

我在移动应用程序的 sharedpreference 中保存了数据。只有当我打开我的穿戴应用程序时,我才想从移动应用程序中的 sharedpreference 中读取数据以显示在穿戴设备上。

每当移动应用程序在 sharedpreference 中更新此数据时,是否会将该活动连接到 Google Services API 并在 DataItem 中发出请求。那么穿戴应用会监听 WearableListenerService 的变化吗?

我不想让服务一直运行,至少不在移动端。实现这一目标的方法是什么?

4

2 回答 2

0

这将是采取的方法,但为了省去实现它的麻烦,已经有一个库可以做到这一点。

WearSharedPreferences

于 2015-05-03T10:07:42.697 回答
0

对于数据传输,您可以使用库 Emmet

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){

    }

});    
于 2015-05-03T10:22:28.290 回答