module DeviceAPI::Android

Android component of DeviceAPI

Android component of DeviceAPI

Android component of DeviceAPI

Android component of DeviceAPI

Public Class Methods

check_if_remote_device?(serial) click to toggle source
# File lib/device_api/android.rb, line 48
def self.check_if_remote_device?(serial)
  begin
    ADB::check_ip_address(serial)
    true
  rescue ADBCommandError
    false 
  end 
end
connect(ipaddress,port=5555) click to toggle source
# File lib/device_api/android.rb, line 40
def self.connect(ipaddress,port=5555)
  ADB.connect(ipaddress,port)
end
device(serial) click to toggle source

Retrieve an Device object by serial id

# File lib/device_api/android.rb, line 30
def self.device(serial)
  if serial.to_s.empty?
    raise DeviceAPI::BadSerialString.new("serial was '#{serial.nil? ? 'nil' : serial}'")
  end
  device = ADB.devices.select {|k| k.keys.first == serial}
  state = device.first[serial] || 'unknown'
  remote = check_if_remote_device?(serial)
  DeviceAPI::Android::Device.create( self.get_device_type({ :"#{serial}" => state}),  { serial: serial, state: state, remote: remote })
end
devices() click to toggle source

Returns array of connected android devices

# File lib/device_api/android.rb, line 19
def self.devices
  ADB.devices.map do |d|
    if d.keys.first && !d.keys.first.include?('?')
      serial = d.keys.first
      remote = check_if_remote_device?(serial)
      DeviceAPI::Android::Device.create( self.get_device_type(d), { serial: serial, state: d.values.first, remote: remote} )
    end
  end.compact
end
disconnect(ipaddress,port=5555) click to toggle source
# File lib/device_api/android.rb, line 44
def self.disconnect(ipaddress,port=5555)
  ADB.disconnect(ipaddress,port)
end
get_device_type(options) click to toggle source

Return the device type used in determining which Device Object to create

# File lib/device_api/android.rb, line 58
def self.get_device_type(options)
  return :default if ['unauthorized', 'offline', 'unknown'].include? options.values.first
  serial = options.keys.first
  state = options.values.first
  begin
    man = Device.new(serial: serial, state: state).manufacturer
  rescue DeviceAPI::DeviceNotFound
    return :default
  rescue => e
    puts "Unrecognised exception whilst finding device '#{serial}' (state: #{state})"
    puts e.message
    puts e.backtrace.inspect
    return :default
  end
  return :default if man.nil?
  case man.downcase
    when 'amazon'
      type = :kindle
    when 'samsung'
      type = :samsung
    else
      type = :default
  end
  type
end