/** * Run a wait loop until adb is connected or trials run out. This method seems to work more reliably then using a * listener. */ private void waitUntilConnected( AndroidDebugBridge adb ) { int trials = 10; final int connectionWaitTime = 50; while ( trials > 0 ) { try { Thread.sleep( connectionWaitTime ); } catch ( InterruptedException e ) { e.printStackTrace(); } if ( adb.isConnected() ) { break; } trials--; } }
/** * Stop the running Android Emulators. * * @throws org.apache.maven.plugin.MojoExecutionException * */ protected void stopAndroidEmulators() throws MojoExecutionException { final AndroidDebugBridge androidDebugBridge = initAndroidDebugBridge(); if ( androidDebugBridge.isConnected() ) { List<IDevice> devices = Arrays.asList( androidDebugBridge.getDevices() ); int numberOfDevices = devices.size(); getLog().info( "Found " + numberOfDevices + " devices connected with the Android Debug Bridge" ); for ( IDevice device : devices ) { if ( device.isEmulator() ) { stopEmulator( device ); } else { getLog().info( "Skipping stop. Not an emulator. " + DeviceHelper.getDescriptiveName( device ) ); } } } }
if ( !androidDebugBridge.isConnected() )
if ( androidDebugBridge.isConnected() )
if ( androidDebugBridge.isConnected() )
public boolean isConnectedToADB() { return AndroidDebugBridge.getBridge().isConnected(); }
@Override public boolean isConnected() { Validate.notNull(delegate, "Android debug bridge must be set. Please call connect() method before execution"); return delegate.isConnected(); }
@Override public boolean isConnected() { Validate.notNull(delegate, "Android debug bridge must be set. Please call connect() method before execution"); return delegate.isConnected(); }
@Override public boolean isConnected() { Validate.stateNotNull(delegate, "Android debug bridge must be set. Please call connect() method before execution"); return delegate.isConnected(); }
public void usingDeviceChangeListener() throws Exception { AndroidDebugBridge.addDeviceChangeListener(new AndroidDebugBridge.IDeviceChangeListener() { // this gets invoked on another thread, but you probably shouldn't count on it public void deviceConnected(IDevice device) { System.out.println("* " + device.getSerialNumber()); } public void deviceDisconnected(IDevice device) { } public void deviceChanged(IDevice device, int changeMask) { } }); AndroidDebugBridge adb = AndroidDebugBridge.createBridge(); Thread.sleep(1000); if (!adb.isConnected()) { System.out.println("Couldn't connect to ADB server"); } AndroidDebugBridge.disconnectBridge(); }
while (trials > 0) { Thread.sleep(50); if (adb.isConnected()) { break; if (!adb.isConnected()) { System.out.println("Couldn't connect to ADB server"); return;