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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 动态获取权限

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

android6.0以前,權(quán)限是在清單文件AndroidManifest.xml里面申明,類似這樣:

AndroidManifest.xml

<!--存儲權(quán)限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--電話權(quán)限--> <uses-permission android:name="android.permission.CALL_PHONE"/> <!--相機權(quán)限--> <uses-permission android:name="android.permission.CAMERA"/> <!--定位權(quán)限--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

但在android6.0以后,都需要動態(tài)獲取權(quán)限,權(quán)限獲取有的是在安裝APP后第一次進(jìn)入獲取,有的是在應(yīng)用內(nèi)部使用時獲取,我的是后者,在使用拍照功能時,先檢查權(quán)限,當(dāng)權(quán)限都獲取到時,再進(jìn)入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]);// 權(quán)限是否已經(jīng) 授權(quán) GRANTED---授權(quán) DINIED---拒絕if (i != PackageManager.PERMISSION_GRANTED ||l != PackageManager.PERMISSION_GRANTED ||m != PackageManager.PERMISSION_GRANTED) {// 如果沒有授予該權(quán)限,就去提示用戶請求startRequestPermission();}}}private void startRequestPermission() {ActivityCompat.requestPermissions(getActivity(), permissions, 321);}

我這個是在dialog中些的,因此用的是getContext(),下面是在對應(yīng)的Activity中獲取權(quán)限返回值:

@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) {//如果沒有獲取權(quán)限,那么可以提示用戶去設(shè)置界面--->應(yīng)用權(quán)限開啟權(quán)限Toast toast = Toast.makeText(this, "設(shè)置界面獲取權(quán)限", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();} else {//獲取權(quán)限成功,跳轉(zhuǎn)Intent intent = new Intent(this, XXXXXActivity.class);startActivity(intent);}}}}

結(jié)束。

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。