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(); } } }