类容:手持端app 点击按钮,手表端显示点击次数

1. 设备间通过GoogleApiClient建立连接,若需监听连接是否成功,需

继承GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener,

此处采用MessageApi发送,继承DataApi.DataListener,MessageApi.MessageListener监听。

        mGoogleApiClient = new GoogleApiClient.Builder(this)                .addApi(Wearable.API)                .addConnectionCallbacks(this)                .addOnConnectionFailedListener(this)                .build();
2. 在Activity 中启动连接

    @Override    protected void onStart() {        //start connect the node you want        mGoogleApiClient.connect();        super.onStart();    }

3.获取连接的设备

    /**     * Get Nodes that connected with phone,such as your android watch     * this method can't be used in UI thread     * @return nodes     */    private List getNodes() {        ArrayList results= new ArrayList();        //get all connected nodes        NodeApi.GetConnectedNodesResult nodes =                Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();        for (Node node : nodes.getNodes()) {            results.add(node);        }        return results;    }
4. 若连接建立成功,会调用onConnected方法

    @Override    public void onConnected(Bundle bundle) {        Log.d(TAG, "onConnected:" + bundle);        //register client listener        Wearable.DataApi.addListener(mGoogleApiClient, this);        new Thread(new Runnable() {            @Override            public void run() {                mConnectedNodes = getNodes();                if (mConnectedNodes.size() > 0) {                    for (Node node : mConnectedNodes) {                        Log.d(TAG, "Connected Node->ID:" +node.getId()+" Name:"+node.getDisplayName());                    }                } else {                    Log.d(TAG, "No Connected Nodes");                }            }        }).start();    }

5.发送端发送消息

    @Override    public void onClick(View v) {        mClickTimes++;        mButton.setText(String.valueOf(mClickTimes));        if ((null != mConnectedNodes)&&(mConnectedNodes.size()>0)) {            //the message send to wear            byte[] sendDatas = ("Alvin:"+mClickTimes).getBytes();            //deliver message            Wearable.MessageApi.sendMessage(mGoogleApiClient,mConnectedNodes.get(0).getId(),WEARABLE_CLICK_PATH,sendDatas)                    .setResultCallback(new ResultCallback() {                        @Override                        public void onResult(MessageApi.SendMessageResult sendMessageResult) {                            if (!sendMessageResult.getStatus().isSuccess()) {                                Log.d(TAG, "sendMessage Fail");                            } else {                                Log.d(TAG, "sendMessage Success");                            }                        }                    });        }    }
6. 接收端注册接收事件,否则接收不到消息

    @Override    public void onConnected(Bundle bundle) {        Log.d(TAG, "onConnected:" + bundle);        Wearable.DataApi.addListener(mGoogleApiClient, this);        //don't forget to register message listener        Wearable.MessageApi.addListener(mGoogleApiClient, this);        mTextView.setText("Connect Success");    }
7. 处理接受的数据

    @Override    public void onMessageReceived(MessageEvent messageEvent) {        Log.d(TAG, "MessageEvent");        if (messageEvent.getPath().equals(WEARABLE_CLICK_PATH)) {            String receiver = new String(messageEvent.getData());            mTextView.setText(receiver);        }    }


注:接收端和发送端在连接和事件处理上方法是一样的

完整代码,请在此处下载:  点击打开链接

具体用法说明参见下述网站:

1. https://developers.google.com/android/

2. http://developer.android.com/intl/zh-cn/wear/index.html

更多相关文章

  1. Android 给TextView添加点击事件
  2. android 的常标签和方法 android 初学者
  3. Android给TextView添加点击事件的实现方法
  4. 赢得争论的方法只有一个,那就是避免争论
  5. 详细介绍MvcPager分页控件使用的实例方法
  6. 比如说我们要从用户表customer和用户订单表orders中,查询上海的用
  7. angularjs是怎么为ng-click事件传递参数的?
  8. Visual Studio 中自定义生成事件的详细介绍
  9. 分享终端控制传感器或设备,形成回路控制实例

随机推荐

  1. Android中View的事件执行机制
  2. android之LinearLayout中android:layout_
  3. Android应用程序消息处理机制(Looper、Han
  4. 系出名门Android(1) - 在 Windows 下搭建
  5. Android初级之路-Android开发环境搭建
  6. Android(安卓)平台的几个编译命令----mak
  7. Android(安卓)4.0市场份额增至21%,Android
  8. Android中webview加载的网页上的按钮点击
  9. Android图形库Skia(四)-生成PDF
  10. Android硬件加速问题