日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 动态获取权限

發布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 动态获取权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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以后,都需要動態獲取權限,權限獲取有的是在安裝APP后第一次進入獲取,有的是在應用內部使用時獲取,我的是后者,在使用拍照功能時,先檢查權限,當權限都獲取到時,再進入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]);// 權限是否已經 授權 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 {//獲取權限成功,跳轉Intent intent = new Intent(this, XXXXXActivity.class);startActivity(intent);}}}}

結束。

總結

以上是生活随笔為你收集整理的android 动态获取权限的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。