Skip to content

Commit 94e5bc8

Browse files
danogfornwall
authored andcommitted
Ignore battery optimization settings to prevent suspension
1 parent 370ac2b commit 94e5bc8

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<uses-permission android:name="android.permission.WAKE_LOCK" />
1414
<uses-permission android:name="android.permission.VIBRATE" />
1515
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
16+
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
1617

1718
<application
1819
android:extractNativeLibs="true"

app/src/main/java/com/termux/app/TermuxService.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import android.os.Handler;
1717
import android.os.IBinder;
1818
import android.os.PowerManager;
19+
import android.provider.Settings;
1920
import android.util.Log;
2021
import android.widget.ArrayAdapter;
2122

@@ -112,6 +113,17 @@ public int onStartCommand(Intent intent, int flags, int startId) {
112113
mWifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, EmulatorDebug.LOG_TAG);
113114
mWifiLock.acquire();
114115

116+
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
117+
String packageName = getPackageName();
118+
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
119+
Intent whitelist = new Intent();
120+
whitelist.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
121+
whitelist.setData(Uri.parse("package:" + packageName));
122+
whitelist.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
123+
startActivity(whitelist);
124+
}
125+
}
126+
115127
updateNotification();
116128
}
117129
} else if (ACTION_UNLOCK_WAKE.equals(action)) {

0 commit comments

Comments
 (0)