12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package device
- import (
- "os/exec"
- "strings"
- "notabug.org/Umnik/GoAndroidSDK/common/utils"
- )
- //ConnectedDevices returns available Device as array
- func ConnectedDevices(adbPath string) []Device {
- data, err := exec.Command(adbPath, "devices", "-l").CombinedOutput()
- if err != nil {
- panic(err)
- }
- start := false
- devices := make([]Device, 0)
- for _, rawLine := range strings.Split(string(data), "\n") {
- switch start {
- case true:
- rawLine = strings.TrimSpace(rawLine)
- if len(rawLine) > 0 {
- device := Device{}
- parts := make([]string, 0)
- for _, part := range strings.Split(rawLine, " ") {
- part = strings.TrimSpace(part)
- if len(part) > 3 {
- parts = append(parts, part)
- }
- }
- device.Serial = parts[0]
- device.DeviceType = parts[1]
- for _, part := range parts {
- switch {
- case strings.HasPrefix(part, "usb:"):
- device.USB = utils.TwoSpotValue(part)
- case strings.HasPrefix(part, "product:"):
- device.Product = utils.TwoSpotValue(part)
- case strings.HasPrefix(part, "model:"):
- device.Model = utils.TwoSpotValue(part)
- case strings.HasPrefix(part, "device:"):
- device.Device = utils.TwoSpotValue(part)
- case strings.HasPrefix(part, "transport_id:"):
- device.TransportID = utils.TwoSpotValue(part)
- }
- }
- devices = append(devices, device)
- }
- case false:
- if strings.HasPrefix(rawLine, "List of") {
- start = true
- }
- }
- }
- return devices
- }
|