Module: DeviceAPI::Android

Defined in:
lib/device_api/android/adb.rb,
lib/device_api/android.rb,
lib/device_api/android/aapt.rb,
lib/device_api/android/device.rb,
lib/device_api/android/signing.rb,
lib/device_api/android/plugins/disk.rb,
lib/device_api/android/device/kindle.rb,
lib/device_api/android/plugins/audio.rb,
lib/device_api/android/device/samsung.rb,
lib/device_api/android/plugins/memory.rb,
lib/device_api/android/plugins/battery.rb

Overview

Android component of DeviceAPI

Defined Under Namespace

Modules: Plugin Classes: AAPT, ADB, ADBCommandError, Device, Kindle, Samsung, Signing, SigningCommandError

Class Method Summary collapse

Class Method Details

.device(serial) ⇒ Object

Retrieve an Device object by serial id



28
29
30
31
32
33
34
# File 'lib/device_api/android.rb', line 28

def self.device(serial)
  if serial.to_s.empty?
    raise DeviceAPI::BadSerialString.new("serial was '#{serial.nil? ? 'nil' : serial}'")
  end
  state = ADB.get_state(serial)
  DeviceAPI::Android::Device.create( self.get_device_type({ :"#{serial}" => state}),  { serial: serial, state: state })
end

.devicesObject

Returns array of connected android devices



19
20
21
22
23
24
25
# File 'lib/device_api/android.rb', line 19

def self.devices
  ADB.devices.map do |d|
    if d.keys.first && !d.keys.first.include?('?')
      DeviceAPI::Android::Device.create( self.get_device_type(d), { serial: d.keys.first, state: d.values.first } )
    end
  end.compact
end

.get_device_type(options) ⇒ Object

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



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/device_api/android.rb', line 37

def self.get_device_type(options)
  return :default if options.values.first == 'unauthorized'
  begin
    man = Device.new(serial: options.keys.first, state: options.values.first).manufacturer
  rescue DeviceAPI::DeviceNotFound
    return :default
  rescue => e
    puts "Unrecognised exception whilst finding device '#{options.keys.first}' (state: #{options.values.first})"
    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