CreateFromAdbData() public static method

public static CreateFromAdbData ( String data ) : Device
data String
return Device
示例#1
0
        public List <Device> GetDevices(IPEndPoint address)
        {
            byte[] request = FormAdbRequest("host:devices");                //$NON-NLS-1$
            byte[] reply;
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try {
                socket.Connect(address);
                socket.Blocking = true;
                if (!Write(socket, request))
                {
                    throw new IOException("failed asking for devices");
                }

                AdbResponse resp = ReadAdbResponse(socket, false /* readDiagString */);
                if (!resp.IOSuccess || !resp.Okay)
                {
                    this.LogError("Got timeout or unhappy response from ADB fb req: " + resp.Message);
                    socket.Close( );
                    return(null);
                }

                reply = new byte[4];
                if (!Read(socket, reply))
                {
                    this.LogError("error in getting data length");
                    socket.Close( );
                    return(null);
                }
                String lenHex = Encoding.Default.GetString(reply);
                int    len    = int.Parse(lenHex, System.Globalization.NumberStyles.HexNumber);

                reply = new byte[len];
                if (!Read(socket, reply))
                {
                    this.LogError("error in getting data");
                    socket.Close( );
                    return(null);
                }

                List <Device> s    = new List <Device> ( );
                String[]      data = Encoding.Default.GetString(reply).Split(new string[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in data)
                {
                    s.Add(Device.CreateFromAdbData(item));
                }
                return(s);
            } finally {
                socket.Close( );
            }
        }