zoukankan      html  css  js  c++  java
  • pc 应用 通过 usb adb 与 android客户端通讯

    这回公司要求要实现类似碗豆夹这类的与pc应用进行通讯备份通讯录,短信,应用,并对这些信息进行编辑的功能。 
    这里主要用到了 adb,socket,pc 应用通过 usb 联接 android 然后通过发送广播来启动 android 里的服务器端程序。 
    这是采用 c/s 的通讯模式,android 端应用是服务器,pc端的是客户端。pc应用启动android端后通过 tcp 协议进行 

    通讯。

    监听代码
    
            private void doListen() {
                    mServerSocket = null;
                    try {
                            mServerSocket = new ServerSocket(mServerPort);
    
                            mMainThreadFlag = true;
                            while (mMainThreadFlag) {
                                    Socket client = mServerSocket.accept();
    
                                    // 开启线程处理客户端请求并发送响应
                                    ServerCmdTransfor sCmdHandler = new ServerCmdTransfor(this.mContext, client);
                                    mHdList.add(sCmdHandler);
                                    new Thread(sCmdHandler).start();
                            }
                    } catch (IOException e1) {
                            e1.printStackTrace();
                    }
            }
    /**
             * 处理客户端请求并发送响应 这些规则都是由产品经理协商好前后端的通讯协议
             */
            private class ServerCmdTransfor extends TCPServerTransfor implements Runnable {
    
    
                    public Handler mNotifyHandler = null;
                    ServerCmdTransfor(Context context, Socket socket) {
                            super(context, socket);
                    }
    
                    @Override
                    public void run() {
                            Util.log(TAG, Thread.currentThread().getName()
                                            + " ServerCmdTransfor start");
                            CmdData data = null;
    
                            // 先接收请求
                            data = readCMD();
                            Util.log(TAG, Thread.currentThread().getName()
                                            + " ServerCmdTransfor readCMD ret " + data);
                            if (data != null) {
                                    // 根据cmdId特殊处理
                                    if (data.cmdId == CmdData.COMMAND_SMS_RECEIVE_REQ) {
                                            // 手机-->PC端的推送
                                            doNotify();
                                    } else {
                                            // 处理
                                            data = TCPServer.this.mCmdHd.processReqCreateResp(data);
    
                                            Util.log(TAG, Thread.currentThread().getName()
                                                            + " ServerCmdTransfor processReqCreateResp ret "
                                                            + data);
                                            // 然后发送响应
                                            if (data != null) {
                                                    boolean ret = sendCMD(data);
                                                    Util.log(TAG, Thread.currentThread().getName()
                                                                    + " ServerCmdTransfor sendCMD ret " + ret);
                                            }
                                    }
                            }
                            try {
                                    mSocket.close();
                                    Util.log(TAG, Thread.currentThread().getName()
                                                    + " ServerCmdTransfor close");
                            } catch (IOException e) {
                                    e.printStackTrace();
                            }
                    }

    更多的移动互联网的发展趋势拓者设计吧效果图移动互联网应用相关的资料请到互联网的一点事www.yidin.net 留言

    android QQ群:222392467

    资料:

    http://www.yidin.net/discuz/forum.php?mod=viewthread&tid=216&extra=page%3D1

    http://www.yidin.net/?p=9725

  • 相关阅读:
    【蜕变之路】第20天 UUID和时间戳的生成 (2019年3月10日)
    3.EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
    reactnative资源
    代码
    模板匹配模型、原型模型和区别性特征模型各自如何解释汉字的知觉
    mysqldatadir 转移
    mysql主从设置windows
    心灵鸡汤
    测试的发现遗漏BUG的做法
    汉字模式匹配的过程
  • 原文地址:https://www.cnblogs.com/ondream/p/3056486.html
Copyright © 2011-2022 走看看