PCアプリケーションはusb adbを介してandroidクライアントと通信する

7091 ワード

今回、同社は、カップ豆クリップのような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