Android 6.0 動態申請 音頻+拍照+相冊 權限


1.音頻的權限(包括錄音和播放)

1.1.首先要在清單中加上兩個權限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

 

1.2.然后在活動的onCreate或者其他必然執行的地方執行如下代碼 

    if (PackageManager.PERMISSION_GRANTED ==   ContextCompat.
            checkSelfPermission(context, android.Manifest.permission.RECORD_AUDIO)) {
    }else{
        //提示用戶開戶權限音頻
        String[] perms = {"android.permission.RECORD_AUDIO"};
        ActivityCompat.requestPermissions(ChatActivity.this,perms, RESULT_CODE_STARTAUDIO);
    }
@Override
public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults){ switch(permsRequestCode){ case RESULT_CODE_STARTAUDIO: boolean albumAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED; if(!albumAccepted){ ToastUtil.show(context,"請開啟應用錄音權限"); } break; } }


2.拍照的權限

2.1.首先在清單中加入兩個權限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>

 

2.2.然后在活動的onCreate或者其他必然執行的地方加入如下代碼 

    //判斷是否開戶相冊權限
    if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(context, android.Manifest.permission.CAMERA)) {
        Camera.startCameraUrl(context, filename, CAMERA);
    }else{
        //提示用戶開戶權限
        String[] perms = {"android.permission.CAMERA"};
        ActivityCompat.requestPermissions(Broadcast_publish.this,perms, RESULT_CODE_STARTCAMERA);
    }

    @Override
    public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults){
        switch(permsRequestCode){
            case RESULT_CODE_STARTCAMERA:
                boolean cameraAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;
                if(cameraAccepted){
                    //授權成功之后,調用系統相機進行拍照操作等
                    Camera.startCameraUrl(context, filename, CAMERA);
                }else{
                    //用戶授權拒絕之后,友情提示一下就可以了
                    ToastUtil.show(context,"請開啟應用拍照權限");
                }
                break;
        }
    }


3.打開相冊權限

3.1.需要在清單中加入如下權限

<!-- 寫sd卡的權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 讀sd卡權限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

 

3.2.然后在活動的onCreate或者必然執行的方法執行如下代碼

    //第二個參數是需要申請的權限
    if (ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
        //權限還沒有授予,需要在這里寫申請權限的代碼
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_OPEN_ALBUM);
    }else {
        //權限已經被授予,在這里直接寫要執行的相應方法即可

    }
    
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == MY_PERMISSIONS_REQUEST_OPEN_ALBUM) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //授權成功

            } else {
                //授權失敗
                Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
            }
        }
    }



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM