是否可以在混合应用程序中请求ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限?

时间:2018-06-12 06:48:30

标签: react-native ionic-framework hybrid-mobile-app

我想创建一个新的移动应用程序。这个新的应用程序将是混合的,需要列入白名单。如今,我有一个Android原生应用程序,它请求启动Intent ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS的权限,让用户可以接受/拒绝请求。

需要权限,因为即使移动设备进入休眠/待机模式,我的应用也必须将数据发送到私人服务器。

是否有可能使用离子或反应原生物来实现类似的东西(我还没有决定我将使用哪种混合技术,并且也赞赏任何建议。)

谢谢!

1 个答案:

答案 0 :(得分:0)

在android / app / src / main / AndroidManifest.xml上添加:

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

在android / app / src / main / java // MainApplication上添加:

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

然后在SoLoader.init()之前在函数public void onCreate()上进行操作;添加:

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);