android - watch face service data layer api -
i got problem google android wear data layer api...
i used call handheld activities wearable activity , worked fine. want call handheld activity watchface service...
i created google api client , added wearableapi:
public void oncreate(surfaceholder holder) { super.oncreate(holder); setwatchfacestyle(new watchfacestyle.builder(mywatchface.this) .setcardpeekmode(watchfacestyle.peek_mode_variable) .setbackgroundvisibility(watchfacestyle.background_visibility_interruptive) .setshowsystemuitime(false) .setacceptstapevents(true) .build()); mgoogleapiclient = new googleapiclient.builder(mywatchface.this) .addapi(wearable.api) .build(); mgoogleapiclient.connect(); then used these methods send data:
public void startactivity() { hashset<string> results = new hashset<string>(); wearable.nodeapi.getconnectednodes(mgoogleapiclient).setresultcallback(new resultcallback<nodeapi.getconnectednodesresult>() { @override public void onresult(nodeapi.getconnectednodesresult getconnectednodesresult) { string handheld = getconnectednodesresult.getnodes().get(0).getid(); toast.maketext(mywatchface.this, getconnectednodesresult.getnodes().get(0).getdisplayname()+": "+ handheld, toast.length_short).show(); sendstartactivitymessage(handheld, givevaluexyz()); } }); private void sendstartactivitymessage(string nodeid, string data) { byte[] dataarray = data.getbytes(); toast.maketext(mywatchface.this, "activitypath: "+ start_activity_path, toast.length_short).show(); wearable.messageapi.sendmessage( mgoogleapiclient, nodeid, start_activity_path, dataarray).setresultcallback( new resultcallback<messageapi.sendmessageresult>() { @override public void onresult(messageapi.sendmessageresult sendmessageresult) { if (!sendmessageresult.getstatus().issuccess()) { log.e(tag, "failed send message status code: " + sendmessageresult.getstatus().getstatuscode()); } } }); } on mobile site used code listen messages:
protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_host_main); context = getapplicationcontext(); ... //google api final googleapiclient googleapiclient = new googleapiclient.builder(this) .addapi(wearable.api).build(); googleapiclient.connect(); wearable.messageapi.addlistener(googleapiclient, this); ...
public void onmessagereceived(messageevent messageevent) { if (messageevent.getpath().equals(start_activity_path_weardata)) { log.d(tag, "getpath: " + messageevent.getpath() + "|||getdata: " + messageevent.getdata()); someactions(); } all works fine if send message wearable activity not trigger onmessagereceived(...) methode if send message watchface service...
could there problem package names?
mobile :com.example.janik.xxx.xxx
watchface: de.watchsmart.watch_smart_watch_face_service
how client know data layer api message adressed him?
Comments
Post a Comment