 <p>for data transfer you can use the library Emmet</p> <p><a href="https://github.com/florent37/emmet" rel="nofollow">https://github.com/florent37/emmet</a></p> <p>We can imagine a protocol like this</p> <pre><code>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); } </code></pre> <p>wear/WearActivity.java</p> <pre><code>//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 </code></pre> <p>mobile/WearService.java</p> <pre><code>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){ } }); </code></pre>