Android6.0动态获取摄像头权限(举一反三)
生活随笔
收集整理的這篇文章主要介紹了
Android6.0动态获取摄像头权限(举一反三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
6.0系統可以動態的獲取系統的權限API>22
例如攝像頭
舉一反三寫一個動態獲取攝像頭的方法,其他的權限也可以稍微修改使用。
在調用攝像頭的地方進行判斷,系統的版本
Build.VERSION.SDK_INT>22如果系統6.0或以上,就判斷有沒有權限:
ContextCompat.checkSelfPermission(MainActivity.this,android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTEDPackageManager有兩個屬性PERMISSION_GRANTED,PERMISSION_DENIED;
GRANTED是已經獲取到權限,
DENIED是沒有獲取到權限;
如果有權限了想干嘛干嘛,如果沒有,就去獲取權限:
ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.CAMERA},CAMERA_OK);然后獲取權限就結束了,然后干嘛呢?獲取權限也有個回調:onRequestPermissionsResult
@Overridepublic void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults) {switch (requestCode){case CAMERA_OK:if (grantResults.length>0&&grantResults[0]==PackageManager.PERMISSION_GRANTED){//這里已經獲取到了攝像頭的權限,想干嘛干嘛了可以}else {//這里是拒絕給APP攝像頭權限,給個提示什么的說明一下都可以。Toast.makeText(MainActivity.this,"請手動打開相機權限",Toast.LENGTH_SHORT).show();}break;default:break;}}貼一下獲取權限的代碼:
if (Build.VERSION.SDK_INT>22){if (ContextCompat.checkSelfPermission(MainActivity.this,android.Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){//先判斷有沒有權限 ,沒有就在這里進行權限的申請ActivityCompat.requestPermissions(MainActivity.this,new String[]{android.Manifest.permission.CAMERA},CAMERA_OK);}else {//說明已經獲取到攝像頭權限了 想干嘛干嘛 }}else { //這個說明系統版本在6.0之下,不需要動態獲取權限。}舉一反三,可以把其他的動態申請權限的替換來。別忘了清單文件里面注冊上權限。
總結
以上是生活随笔為你收集整理的Android6.0动态获取摄像头权限(举一反三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dxp中Cap,Cap2,Cap Pol
- 下一篇: android sina oauth2.