混合开发的坑

作者: 蔡振辉 | 来源:发表于2019-04-26 15:37 被阅读6次

/**
* 忽略电池优化
*/
private void ignoreBatteryOptimization(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){

        PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);

        boolean hasIgnored = powerManager.isIgnoringBatteryOptimizations(activity.getPackageName());
        //  判断当前APP是否有加入电池优化的白名单,如果没有,弹出加入电池优化的白名单的设置对话框。
        if (!hasIgnored) {
            Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            intent.setData(Uri.parse("package:" + activity.getPackageName()));
            startActivity(intent);
        }
    }
}

在配置文件AndroidManifest.xml添加权限:

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
弹出的确认框点击确认,即可申请加入优化白名单

Android7.0调用相机时出现新的错误:
android.os.FileUriExposedException: file:///storage/emulated/0/photo.jpeg exposed beyond app through ClipData.Item.getUri()

解决办法:
在Application的onCreat()方法中添加以下代码:

    // android 7.0系统解决拍照的问题
    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());
    builder.detectFileUriExposure(); 

相关文章

网友评论

    本文标题:混合开发的坑

    本文链接:https://www.haomeiwen.com/subject/ppqqnqtx.html