diff --git a/playbacktests/src/main/AndroidManifest.xml b/playbacktests/src/main/AndroidManifest.xml
index 31b5016cef..f9f51c4e6d 100644
--- a/playbacktests/src/main/AndroidManifest.xml
+++ b/playbacktests/src/main/AndroidManifest.xml
@@ -21,6 +21,7 @@
android:versionName="1.4.1">
+
diff --git a/playbacktests/src/main/java/com/google/android/exoplayer/playbacktests/util/HostActivity.java b/playbacktests/src/main/java/com/google/android/exoplayer/playbacktests/util/HostActivity.java
index bd88280aa5..83c1b51943 100644
--- a/playbacktests/src/main/java/com/google/android/exoplayer/playbacktests/util/HostActivity.java
+++ b/playbacktests/src/main/java/com/google/android/exoplayer/playbacktests/util/HostActivity.java
@@ -19,11 +19,18 @@ import static junit.framework.Assert.fail;
import com.google.android.exoplayer.playbacktests.R;
import com.google.android.exoplayer.util.Assertions;
+import com.google.android.exoplayer.util.Util;
+import android.annotation.SuppressLint;
import android.app.Activity;
+import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.net.wifi.WifiManager.WifiLock;
import android.os.Bundle;
import android.os.ConditionVariable;
import android.os.Handler;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
@@ -78,6 +85,9 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
private static final String TAG = "HostActivity";
+ private WakeLock wakeLock;
+ private WifiLock wifiLock;
+
private SurfaceView surfaceView;
private Handler mainHandler;
private CheckFinishedRunnable checkFinishedRunnable;
@@ -137,6 +147,18 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
checkFinishedRunnable = new CheckFinishedRunnable();
}
+ @Override
+ public void onStart() {
+ Context appContext = getApplicationContext();
+ WifiManager wifiManager = (WifiManager) appContext.getSystemService(Context.WIFI_SERVICE);
+ wifiLock = wifiManager.createWifiLock(getWifiLockMode(), TAG);
+ wifiLock.acquire();
+ PowerManager powerManager = (PowerManager) appContext.getSystemService(Context.POWER_SERVICE);
+ wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
+ wakeLock.acquire();
+ super.onStart();
+ }
+
@Override
public void onResume() {
super.onResume();
@@ -149,6 +171,15 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
maybeReleaseHostedTest();
}
+ @Override
+ public void onStop() {
+ super.onStop();
+ wakeLock.release();
+ wakeLock = null;
+ wifiLock.release();
+ wifiLock = null;
+ }
+
// SurfaceHolder.Callback
@Override
@@ -190,6 +221,11 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba
}
}
+ @SuppressLint("InlinedApi")
+ private static final int getWifiLockMode() {
+ return Util.SDK_INT < 12 ? WifiManager.WIFI_MODE_FULL : WifiManager.WIFI_MODE_FULL_HIGH_PERF;
+ }
+
private final class CheckFinishedRunnable implements Runnable {
private static final long CHECK_INTERVAL_MS = 1000;