Commit d35a77c1 authored by Gus Grubba's avatar Gus Grubba

Keep Android screen from sleeping while QGC is running.

parent 1363ee82
...@@ -44,6 +44,7 @@ import android.hardware.usb.*; ...@@ -44,6 +44,7 @@ import android.hardware.usb.*;
import android.widget.Toast; import android.widget.Toast;
import android.util.Log; import android.util.Log;
import android.os.PowerManager; import android.os.PowerManager;
import android.view.WindowManager;
//-- Text To Speech //-- Text To Speech
import android.os.Bundle; import android.os.Bundle;
import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech;
...@@ -123,12 +124,27 @@ public class QGCActivity extends QtActivity implements TextToSpeech.OnInitListen ...@@ -123,12 +124,27 @@ public class QGCActivity extends QtActivity implements TextToSpeech.OnInitListen
m_tts = new TextToSpeech(this,this); m_tts = new TextToSpeech(this,this);
PowerManager pm = (PowerManager)m_instance.getSystemService(Context.POWER_SERVICE); PowerManager pm = (PowerManager)m_instance.getSystemService(Context.POWER_SERVICE);
m_wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "QGroundControl"); m_wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "QGroundControl");
if(m_wl != null) {
m_wl.acquire();
Log.i(TAG, "SCREEN_BRIGHT_WAKE_LOCK acquired.");
} else {
Log.i(TAG, "SCREEN_BRIGHT_WAKE_LOCK not acquired!!!");
}
m_instance.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
} }
@Override @Override
protected void onDestroy() { protected void onDestroy() {
try {
if(m_wl != null) {
m_wl.release();
Log.i(TAG, "SCREEN_BRIGHT_WAKE_LOCK released.");
}
m_tts.shutdown();
} catch(Exception e) {
Log.e(TAG, "Exception onDestroy()");
}
super.onDestroy(); super.onDestroy();
m_tts.shutdown();
} }
public void onInit(int status) { public void onInit(int status) {
...@@ -140,24 +156,6 @@ public class QGCActivity extends QtActivity implements TextToSpeech.OnInitListen ...@@ -140,24 +156,6 @@ public class QGCActivity extends QtActivity implements TextToSpeech.OnInitListen
m_tts.speak(msg, TextToSpeech.QUEUE_FLUSH, null); m_tts.speak(msg, TextToSpeech.QUEUE_FLUSH, null);
} }
public static void keepScreenOn()
{
if(m_wl != null) {
m_wl.acquire();
Log.i(TAG, "SCREEN_BRIGHT_WAKE_LOCK acquired.");
} else {
Log.i(TAG, "SCREEN_BRIGHT_WAKE_LOCK not acquired!!!");
}
}
public static void restoreScreenOn()
{
if(m_wl != null) {
m_wl.release();
Log.i(TAG, "SCREEN_BRIGHT_WAKE_LOCK released.");
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// Find all current devices that match the device filter described in the androidmanifest.xml and the // Find all current devices that match the device filter described in the androidmanifest.xml and the
......
...@@ -13,13 +13,9 @@ ...@@ -13,13 +13,9 @@
#include <QtAndroidExtras/QtAndroidExtras> #include <QtAndroidExtras/QtAndroidExtras>
#include <QtAndroidExtras/QAndroidJniObject> #include <QtAndroidExtras/QAndroidJniObject>
static const char* kJniClassName = "org/mavlink/qgroundcontrol/QGCActivity"; //static const char* kJniClassName = "org/mavlink/qgroundcontrol/QGCActivity";
void MobileScreenMgr::setKeepScreenOn(bool keepScreenOn) void MobileScreenMgr::setKeepScreenOn(bool /*keepScreenOn*/)
{ {
if (keepScreenOn) { //-- Screen is locked on while QGC is running on Android
QAndroidJniObject::callStaticMethod<void>(kJniClassName, "keepScreenOn", "()V");
} else {
QAndroidJniObject::callStaticMethod<void>(kJniClassName, "restoreScreenOn", "()V");
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment