混合开发的坑

作者: 蔡振辉 | 来源:发表于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