android 动态获取权限
生活随笔
收集整理的這篇文章主要介紹了
android 动态获取权限
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
android6.0以前,權限是在清單文件AndroidManifest.xml里面申明,類似這樣:
AndroidManifest.xml
<!--存儲權限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--電話權限--> <uses-permission android:name="android.permission.CALL_PHONE"/> <!--相機權限--> <uses-permission android:name="android.permission.CAMERA"/> <!--定位權限--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />但在android6.0以后,都需要動態(tài)獲取權限,權限獲取有的是在安裝APP后第一次進入獲取,有的是在應用內(nèi)部使用時獲取,我的是后者,在使用拍照功能時,先檢查權限,當權限都獲取到時,再進入Activity界面:
String[] permissions = new String[]{Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO,Manifest.permission.WRITE_EXTERNAL_STORAGE}; //點擊按鈕,訪問如下方法 private void checkPermissions(){if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {int i = ContextCompat.checkSelfPermission(getContext(), permissions[0]);int l = ContextCompat.checkSelfPermission(getContext(), permissions[1]);int m = ContextCompat.checkSelfPermission(getContext(), permissions[2]);// 權限是否已經(jīng) 授權 GRANTED---授權 DINIED---拒絕if (i != PackageManager.PERMISSION_GRANTED ||l != PackageManager.PERMISSION_GRANTED ||m != PackageManager.PERMISSION_GRANTED) {// 如果沒有授予該權限,就去提示用戶請求startRequestPermission();}}}private void startRequestPermission() {ActivityCompat.requestPermissions(getActivity(), permissions, 321);}我這個是在dialog中些的,因此用的是getContext(),下面是在對應的Activity中獲取權限返回值:
@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if (requestCode == 321) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {//如果沒有獲取權限,那么可以提示用戶去設置界面--->應用權限開啟權限Toast toast = Toast.makeText(this, "設置界面獲取權限", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();} else {//獲取權限成功,跳轉(zhuǎn)Intent intent = new Intent(this, XXXXXActivity.class);startActivity(intent);}}}}結(jié)束。
總結(jié)
以上是生活随笔為你收集整理的android 动态获取权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【agc012E】Camel and O
- 下一篇: [Java] 使用HttpClient实