Можно ли запросить разрешение ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS в гибридных приложениях? - PullRequest
0 голосов
/ 12 июня 2018

Я хотел бы создать новое мобильное приложение.Это новое приложение будет гибридным и должно быть в белом списке.В настоящее время у меня есть собственное приложение для Android, которое запрашивает разрешение на запуск Intent ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, который дает пользователю возможность принять / отклонить запрос.

Разрешение необходимо, потому что моему приложению необходимо отправлять данные на частный сервер, даже если мобильное устройство переходит в режим ожидания / ожидания.

Возможно ли реализовать нечто подобное с использованием ионного илиresponse-native (я еще не решил, какую гибридную технологию я буду использовать, и любые рекомендации также приветствуются).

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2018

Да

На андроиде / app / src / main / AndroidManifest.xml добавить:

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

На андроиде / app / src / main / java // MainApplication add:

import android.os.PowerManager;
import android.net.Uri;
import android.provider.Settings;

затем на функцию public void onCreate () перед SoLoader.init ();добавить:

Intent myIntent = new Intent();
String packageName = getApplicationContext().getPackageName();
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
if (pm.isIgnoringBatteryOptimizations(packageName))
  myIntent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
  myIntent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
  myIntent.setData(Uri.parse("package:" + packageName));
}
getApplicationContext().startActivity(myIntent);
...