com.android.sdklib.devices
Class DeviceManager

java.lang.Object
  extended by com.android.sdklib.devices.DeviceManager

public class DeviceManager
extends java.lang.Object

Manager class for interacting with Devices within the SDK


Nested Class Summary
static class DeviceManager.DeviceFilter
           
static interface DeviceManager.DevicesChangedListener
          Interface implemented by objects which want to know when changes occur to the Device lists.
static class DeviceManager.DeviceStatus
           
 
Field Summary
static java.util.EnumSet<DeviceManager.DeviceFilter> ALL_DEVICES
          getDevices() flag to list all devices.
 
Method Summary
 void addUserDevice(Device d)
           
static DeviceManager createInstance(java.io.File sdkLocation, com.android.utils.ILogger log)
          Creates a new instance of DeviceManager.
 Device getDevice(java.lang.String id, java.lang.String manufacturer)
           
 java.util.Collection<Device> getDevices(DeviceManager.DeviceFilter deviceFilter)
          Returns the known Device list.
 java.util.Collection<Device> getDevices(java.util.EnumSet<DeviceManager.DeviceFilter> deviceFilter)
          Returns the known Device list.
 DeviceManager.DeviceStatus getDeviceStatus(java.lang.String name, java.lang.String manufacturer)
           
static java.util.Map<java.lang.String,java.lang.String> getHardwareProperties(Device d)
          Returns the hardware properties defined in AvdManager.HARDWARE_INI as a Map.
static java.util.Map<java.lang.String,java.lang.String> getHardwareProperties(State s)
          Returns hardware properties (defined in hardware.ini) as a Map.
static java.lang.String hasHardwarePropHashChanged(Device d, java.lang.String hashV2)
          Checks whether the the hardware props have changed.
 void registerListener(DeviceManager.DevicesChangedListener listener)
          Register a listener to be notified when the device lists are modified.
 void removeUserDevice(Device d)
           
 void replaceUserDevice(Device d)
           
 void saveUserDevices()
          Saves out the user devices to SdkConstants.FN_DEVICES_XML in AndroidLocation.getFolder().
 boolean unregisterListener(DeviceManager.DevicesChangedListener listener)
          Removes a listener from the notification list such that it will no longer receive notifications when modifications to the Device list occur.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALL_DEVICES

public static final java.util.EnumSet<DeviceManager.DeviceFilter> ALL_DEVICES
getDevices() flag to list all devices.

Method Detail

createInstance

public static DeviceManager createInstance(@Nullable
                                           java.io.File sdkLocation,
                                           @NonNull
                                           com.android.utils.ILogger log)
Creates a new instance of DeviceManager.

Parameters:
sdkLocation - Path to the current SDK. If null or invalid, vendor and system images devices are ignored.
log - SDK logger instance. Should be non-null.

registerListener

public void registerListener(@NonNull
                             DeviceManager.DevicesChangedListener listener)
Register a listener to be notified when the device lists are modified.

Parameters:
listener - The listener to add. Ignored if already registered.

unregisterListener

public boolean unregisterListener(@NonNull
                                  DeviceManager.DevicesChangedListener listener)
Removes a listener from the notification list such that it will no longer receive notifications when modifications to the Device list occur.

Parameters:
listener - The listener to remove.

getDeviceStatus

@NonNull
public DeviceManager.DeviceStatus getDeviceStatus(@NonNull
                                                          java.lang.String name,
                                                          @NonNull
                                                          java.lang.String manufacturer)

getDevice

@Nullable
public Device getDevice(@NonNull
                                 java.lang.String id,
                                 @NonNull
                                 java.lang.String manufacturer)

getDevices

@NonNull
public java.util.Collection<Device> getDevices(@NonNull
                                                       DeviceManager.DeviceFilter deviceFilter)
Returns the known Device list.

Parameters:
deviceFilter - One of the DeviceManager.DeviceFilter constants.
Returns:
A copy of the list of Devices. Can be empty but not null.

getDevices

@NonNull
public java.util.Collection<Device> getDevices(@NonNull
                                                       java.util.EnumSet<DeviceManager.DeviceFilter> deviceFilter)
Returns the known Device list.

Parameters:
deviceFilter - A combination of the DeviceManager.DeviceFilter constants or the constant ALL_DEVICES.
Returns:
A copy of the list of Devices. Can be empty but not null.

addUserDevice

public void addUserDevice(@NonNull
                          Device d)

removeUserDevice

public void removeUserDevice(@NonNull
                             Device d)

replaceUserDevice

public void replaceUserDevice(@NonNull
                              Device d)

saveUserDevices

public void saveUserDevices()
Saves out the user devices to SdkConstants.FN_DEVICES_XML in AndroidLocation.getFolder().


getHardwareProperties

@NonNull
public static java.util.Map<java.lang.String,java.lang.String> getHardwareProperties(@NonNull
                                                                                             State s)
Returns hardware properties (defined in hardware.ini) as a Map.

Parameters:
s - The State from which to derive the hardware properties.
Returns:
A Map of hardware properties.

getHardwareProperties

@NonNull
public static java.util.Map<java.lang.String,java.lang.String> getHardwareProperties(@NonNull
                                                                                             Device d)
Returns the hardware properties defined in AvdManager.HARDWARE_INI as a Map. This is intended to be dumped in the config.ini and already contains the device name, manufacturer and device hash.

Parameters:
d - The Device from which to derive the hardware properties.
Returns:
A Map of hardware properties.

hasHardwarePropHashChanged

@Nullable
public static java.lang.String hasHardwarePropHashChanged(@NonNull
                                                                   Device d,
                                                                   @NonNull
                                                                   java.lang.String hashV2)
Checks whether the the hardware props have changed. If the hash is the same, returns null for success. If the hash is not the same or there's not enough information to indicate it's the same (e.g. if in the future we change the digest method), simply return the new hash, indicating it would be best to update it.

Parameters:
d - The device.
hashV2 - The previous saved AvdManager.AVD_INI_DEVICE_HASH_V2 property.
Returns:
Null if the same, otherwise returns the new and different hash.