调用系统组件

申请权限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"?>    

 

 

 

 

 

更多相关文章

  1. android获取短信所有内容
  2. android新闻应用、应用锁、小说阅读、短视频APP等源码
  3. Android应用安全之Android平台上的跨应用攻击
  4. Android(安卓)权限
  5. Android总结篇系列:Android(安卓)权限
  6. android 无界面通过开机下载
  7. 麦子学院Android应用开发工程师视频教程 共18章
  8. Android安全机制--四大组件安全
  9. 《Android(安卓)从初学者入门到成为高手 视频教程合集》 (定期更

随机推荐

  1. Python爬虫之post请求
  2. Python3 基本数据类型
  3. 【python 编程】网页中文过滤分词及词频
  4. 【好文收藏】理解python多线程
  5. python 发送带附件的邮件
  6. Python 安装 pip模块
  7. python opencv入门 轮廓的层次结构(21)
  8. python函数不定长参数
  9. Python MOOC简单获取网页内容并以html格
  10. day05 python程序中的注释