调用系统组件

申请权限AndroidManifest.xml

 

SystemVedioActivity.java
package com.example.a20200712;import android.Manifest;import android.app.Activity;import android.content.Intent;import android.content.pm.PackageManager;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.util.Log;import android.view.View;import android.widget.Toast;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import androidx.core.app.ActivityCompat;import androidx.core.content.ContextCompat;import java.io.File;import java.io.IOException;public class SystemVedioActivity extends AppCompatActivity {    private final int VIDEO_WITH_CAMERA = 1001;    //自定义    private final int REQUEST_CODE_CAMERA = 1003;    private final int REQUEST_CODE_WRITE_EXTERNAL_STORAGE = 1004;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.system_vedio_layout);    }    public void systemVedioRecord(View view){        requestPermission();        Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);        //设置视频录制的最长时间        intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 10);        //设置视频录制的画质        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);        startActivityForResult(intent, VIDEO_WITH_CAMERA);    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        try {            if (resultCode == Activity.RESULT_OK && requestCode == VIDEO_WITH_CAMERA) {                Uri uri = data.getData();                Log.e("mw", "onActivityResult: " + uri.toString());            }        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * 权限动态申请     */    public void requestPermission() {        // checkSelfPermission 判断是否已经申请了此权限        if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)                != PackageManager.PERMISSION_GRANTED ||                ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)                        != PackageManager.PERMISSION_GRANTED) {            //如果应用之前请求过此权限但用户拒绝了请求,shouldShowRequestPermissionRationale将返回 true。            if (ActivityCompat.shouldShowRequestPermissionRationale(this,                    Manifest.permission.CAMERA)) {            } else {                // ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_CAMERA);                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA               }, REQUEST_CODE_WRITE_EXTERNAL_STORAGE);            }        }    }    /**     * 申请结果返回     * @param requestCode     * @param permissions     * @param grantResults     */    @Override    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        if (requestCode == REQUEST_CODE_CAMERA || requestCode == REQUEST_CODE_WRITE_EXTERNAL_STORAGE) {            for (int i = 0; i < permissions.length; i++) {                if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {                    Toast.makeText(this, "" + "权限" + permissions[i] + "申请成功", Toast.LENGTH_SHORT).show();                } else {                    Toast.makeText(this, "" + "权限" + permissions[i] + "申请失败", Toast.LENGTH_SHORT).show();                }            }        }    }}

system_vedio_layout.xml

 

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

 

android视频录制MediaStore.ACTION_VIDEO_CAPTURE_第1张图片

 

 

 

 

更多相关文章

  1. android新闻应用、应用锁、小说阅读、短视频APP等源码
  2. Android 权限
  3. Android总结篇系列:Android 权限
  4. 麦子学院Android应用开发工程师视频教程 共18章
  5. Android自定义权限
  6. Android改变wifi状态必须要的权限
  7. Android 系统完整的权限列表
  8. 【黑马Android】(02)短信发送器/布局演示/android下单位/android

随机推荐

  1. Android中 LED 系统架构
  2. 原YUV格式的解析 Android(安卓)NV21 视频
  3. [Android开发]android 跨进程通信之conte
  4. android的图片加载和伸缩处理
  5. 检测Android本地存储是否有敏感信息
  6. 强制 Android 应用使用某个 Locale语言
  7. Android SDK 2.2 开发环境搭建
  8. 与手势识别有关的Android类
  9. Android 应用程序中-设置-蓝牙,若隐藏蓝牙
  10. Android拖动改变小球位置