美文网首页
权限问题

权限问题

作者: GrayZhang | 来源:发表于2018-06-08 16:20 被阅读0次

    android7.0以上手机摄像头,SD卡 访问

    1、 在AndroidManifest.xml 设置 provider

    <provider>

            android:name="android.support.v4.content.FileProvider"

            android:authorities="com.wondersgroup.smartcampus.teacher.fileprovider"

            android:exported="false"

            android:grantUriPermissions="true">

                android:name="android.support.FILE_PROVIDER_PATHS"

                android:resource="@xml/file_paths" />

    </provider>

    2、在res文件夹下的xml文件夹下添加file_paths文件

    <paths>

    <!--第一个参数随便写,第二个参数是 对那个目录下面的文件进行分装呢,如果什么都不写就代表是sd 卡下面-->

    <external-path name="my_images" path="smartCampus/images"/>

    </paths>

    3、使用

    录制视频

    captureMediaFile 保存地址

    limit_time  录制时间

    fileprovider 包名+“.fileprovider”

    public static IntentcreateCaptureMediaIntent(File captureMediaFile, long limit_time, Context context, String fileprovider) {

    Uri uri =null;

            // 7.0 中的处理

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

    //FileProvider 将文件进行分装, 然后供外部应用(相机)访问提高了当前应用的安全性

                uri = FileProvider.getUriForFile(context, fileprovider, captureMediaFile);//通过FileProvider 来获取本地图片文件

            }else {

    uri = Uri.fromFile(captureMediaFile);

            }

    Intent intent =new Intent();

            intent.setAction("android.media.action.VIDEO_CAPTURE");

            intent.addCategory("android.intent.category.DEFAULT");

            // 保存录像到指定的路径

            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

            intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, limit_time);

            return intent;

        }

    拍照

    public static IntentcreateCaptureImageIntent(File captureImageFile, Context context, String fileprovider) {

    Uri uri =null;

        // 7.0 中的处理

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

    //FileProvider 将文件进行分装, 然后供外部应用(相机)访问提高了当前应用的安全性

            uri = FileProvider.getUriForFile(context, fileprovider, captureImageFile);//通过FileProvider 来获取本地图片文件

        }else {

    uri = Uri.fromFile(captureImageFile);

        }

    Intent intent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        return intent;

    }

       

    相关文章

      网友评论

          本文标题:权限问题

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