代码之家  ›  专栏  ›  技术社区  ›  mgonzalez

是否可以在混合应用程序中请求操作\请求\忽略\电池\优化权限?

  •  2
  • mgonzalez  · 技术社区  · 6 年前

    我想创建一个新的移动应用程序。这个新应用将是混合的,需要被列入白名单。现在,我有一个Android原生应用程序,它请求许可,启动意向操作、请求、忽略、电池优化,让用户有可能接受/拒绝请求。

    之所以需要该权限,是因为我的应用程序需要将数据发送到专用服务器,即使手机进入“打瞌睡/待机”模式。

    是否可以使用ionic或react native实现类似的功能(我还没有决定使用哪种混合技术,任何建议都会受到欢迎)。

    非常感谢。

    1 回复  |  直到 6 年前
        1
  •  0
  •   André Bolinhas    6 年前

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

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

    在android/app/src/main/java//main应用程序上添加:

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

    然后在SoLoader之前的函数public void onCreate()上。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);