【问题标题】:Is it possible to ask for ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permission in hybrid apps?是否可以在混合应用程序中请求 ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 权限?
【发布时间】:2018-06-12 06:48:29
【问题描述】:

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

需要该权限,因为即使手机进入打盹/待机模式,我的应用也必须将数据发送到私有服务器。

是否可以使用 ionic 或 react-native 来实现类似的东西(我还没有决定我将使用哪种混合技术,任何建议也很受欢迎)。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    是的

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 2015-12-22
      • 2012-06-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      相关资源
      最近更新 更多