DroidExplorer.Core.Adb.Device.CreateFromAdbData C# (CSharp) Méthode

CreateFromAdbData() public static méthode

public static CreateFromAdbData ( String data ) : Device
data String
Résultat Device
        public static Device CreateFromAdbData( String data )
        {
            Regex re = new Regex ( RE_DEVICELIST_INFO, RegexOptions.Compiled | RegexOptions.IgnoreCase );
            Match m = re.Match ( data );
            if ( m.Success ) {
                return new Device ( m.Groups[1].Value, GetStateFromString ( m.Groups[2].Value ) );
            } else {
                throw new ArgumentException ( "Invalid device list data" );
            }
        }

Usage Example

Exemple #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( );
            }
        }