【问题标题】:onDataChanged is not getting calledonDataChanged 没有被调用
【发布时间】:2015-09-12 04:24:41
【问题描述】:

我正在开发可穿戴和手持设备的演示应用程序。 当磨损开始时,它会向手持设备发送请求并获取列表以及时间戳。当我们单击任何列表项时,它会再次将更改发送到掌上电脑。 这很好用

但我不想在单击设备列表时发送列表。 在设备活动线程中

       class SendToDataLayerThread extends Thread {

    String path;
    DataMap dataMap;

    SendToDataLayerThread(String p,DataMap d){
        path = p;
        dataMap = d;
    }

    @Override
    public void run() {

         PutDataMapRequest putDMR= PutDataMapRequest.create(path);
                ArrayList<Job> arrlist=new ArrayList<>();
                ArrayList<String> staticArray=new ArrayList<>();
                mydb=new DBHelper(ListOfTaskActivity.this);
                arrlist.clear();
                arrlist = mydb.getAllCalls();

                if(arrlist.size()>0) {
                    for (int i = 0; i < arrlist.size(); i++) {
                        staticArray.add(arrlist.get(i).get_id()+"~"+arrlist.get(i).getJob_status()+"~"+arrlist.get(i).getJob_placename());

                    }
                }

                dataMap.putStringArrayList("CallArrayList", staticArray);

            NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(wagoogleApiClient).await();
            for(Node node : nodes.getNodes()) {
                if(wagoogleApiClient.isConnected()){

                    dataMap.putLong("new_TimeStamp", new Date().getTime());
                    putDMR.getDataMap().putAll(dataMap);

                    PutDataRequest request = putDMR.asPutDataRequest();
                    Wearable.DataApi.putDataItem(googleApiClient,request);
                }
            }
       }
  }

这可行,但可穿戴服务 onDataChanged 从未调用过

穿着服务

   public class WearableService extends WearableListenerService {
         @Override
public void onDataChanged(DataEventBuffer dataEvents) {
    super.onDataChanged(dataEvents);
     DataMap dataMap;
    try {
        for (DataEvent event : dataEvents) {
            Log.d(TAG, "in for DataEvent event : dataEvents");
            if (event.getType() == DataEvent.TYPE_CHANGED) {
                String path = event.getDataItem().getUri().getPath();

                if(path.equals("/DataService_Path")) {
                   // change list
                 }
   }
 }

我卡在这里,提前谢谢你的帮助

【问题讨论】:

标签: android service wear-os


【解决方案1】:

您是否连接到服务中的 googleclientapi?

mGoogleApiClient = new GoogleApiClient.Builder(context) .addApi(可穿戴.API) .addConnectionCallbacks(这个) 。建造(); mGoogleApiClient.connect()

还可以查看这篇文章:

WearableListenerService, onDataChanged() is not called

【讨论】:

  • googleApiClient 连接正常,manifest 文件中也定义了强制权限,因为当我们从 Wear 发送请求时,数据进入 WearableService 中的数组列表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
相关资源
最近更新 更多