美文网首页Android
FileProvider-9.0适配

FileProvider-9.0适配

作者: 河马过河 | 来源:发表于2019-07-08 16:56 被阅读0次

版本

    android = [
            compileSdkVersion: 29,
            buildToolsVersion: '29.0.3'
            minSdkVersion    : 19,
            targetSdkVersion : 29,
            versionCode      : 1,
            versionName      : "1.0.0",

    ]

配置

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.CAMERA" />
 <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${AuthoritiesId}.fileprovider"
            android:grantUriPermissions="true"
            android:exported="false">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>

file_paths文件

<?xml version="1.0" encoding="utf-8"?>

<paths>
    <external-path
        name="external"
        path="camera_photos" />
</paths>

调用-拍照

  @SuppressLint("CheckResult")
    public void cameraPicture(FragmentActivity activity) {
        RxPermissions rxPermissions = new RxPermissions(activity);
        rxPermissions.requestEachCombined(Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE,
                Manifest.permission.CAMERA)
                .compose(RxLifeCycleUtils.bindToLifecycle(this))
                .subscribe(new Consumer<Permission>() {
                    @Override
                    public void accept(Permission permission) throws Exception {
                        LogUtils.error("ddd", "----rxPermissions-----:" + permission.granted);
                        if (permission.granted) {
                            cameraPic();
                        }
                    }
                });
    }

    public void cameraPic() {
        file = new File(Environment.getExternalStorageDirectory(), "/camera_photos/" + System.currentTimeMillis() + ".jpg");
        if (!file.getParentFile().exists()) file.getParentFile().mkdirs();
        Uri imageUri = FileProviderUtils.getFileUri(this, file);
        LogUtils.error("ddd", imageUri.toString());
        Intent intent = new Intent();
        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//设置Action为拍照
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);//将拍取的照片保存到指定URI
        startActivityForResult(intent, 1006);
    }

工具类

package com.example.zhang.utils;

import android.content.Context;
import android.net.Uri;
import android.os.Build;

import androidx.core.content.FileProvider;

import java.io.File;

public class FileProviderUtils {
    public static Uri getFileUri(Context context, File file) {
        Uri uri;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            uri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", file);
        } else {
            uri = Uri.fromFile(file);
        }
        return uri;
    }
}

参考

https://blog.csdn.net/lmj623565791/article/details/72859156
https://blog.csdn.net/growing_tree/article/details/71190741
https://blog.csdn.net/fengyuzhengfan/article/details/52688232

相关文章

  • FileProvider-9.0适配

    版本 配置 file_paths文件 调用-拍照 工具类 参考 https://blog.csdn.net/lmj...

  • 适配iOS11,适配iPhoneX,适配安全区的几个文章和宏

    适配iOS11,适配iPhoneX,适配安全区的几个文章和宏 适配iOS11,适配iPhoneX,适配安全区的几个...

  • App适配

    布局适配 字体适配 软键盘适配

  • 版本适配

    屏幕适配 代码适配 Masonry UIView+AutoLayout 可视化适配 autoLayout 系统适配...

  • Android屏幕适配

    px适配; 百分比适配; 修改dp适配; 屏幕适配 布局适配使用wrap_content,match_parent...

  • 屏幕适配

    适配 什么是适配?适应、兼容各种不同的情况 iOS开发中的适配?系统适配针对不同版本的操作系统进行适配屏幕适配针对...

  • iOS 适配器模式

    适配器模式创建适配协议,创建抽象适配器类,创建类适配器/对象适配器。 应用,适用场景电源适配器,普通充电器(类适配...

  • iPhone X 适配 ( iOS 11适配 ) 打理刘海

    iPhone X 适配 ( iOS 11适配 ) 打理刘海 iPhone X 适配 ( iOS 11适配 ) 打理刘海

  • iOS设计模式 (五) 适配器模式

    适配器模式 iOS中的适配器模式,主要由目标协议,适配者,适配器三部分组成. 适配器模式分类 类适配器: 适配器是...

  • 设计模式-适配器

    适配器模式,目的是为了适配补偿,对于适配器模式,我们要学习的两种方式是类适配器和对象适配器。 类适配器 类适配器是...

网友评论

    本文标题:FileProvider-9.0适配

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