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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 6.0及以上版本动态申请权限,11权限

發布時間:2023/12/10 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 6.0及以上版本动态申请权限,11权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//安卓11文件權限// 先判斷有沒有權限if (Environment.isExternalStorageManager()) {//已有權限-----------------onHeadClick();} else {Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);intent.setData(Uri.parse("package:" + getPackageName()));startActivity(intent);return;} }

if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {// TODO: Consider calling// ActivityCompat#requestPermissions// here to request the missing permissions, and then overriding// public void onRequestPermissionsResult(int requestCode, String[] permissions,// int[] grantResults)// to handle the case where the user grants the permission. See the documentation// for ActivityCompat#requestPermissions for more details.return 1; }

1.需要用戶手動賦予的權限( Dangerous Permissions)

所屬權限組權限
日歷READ_CALENDAR
日歷WRITE_CALENDAR
相機CAMERA
聯系人READ_CONTACTS
聯系人WRITE_CONTACTS
聯系人GET_ACCOUNTS
位置ACCESS_FINE_LOCATION
位置ACCESS_COARSE_LOCATION
麥克風RECORD_AUDIO
電話READ_PHONE_STATE
電話CALL_PHONE
電話READ_CALL_LOG
電話WRITE_CALL_LOG
電話ADD_VOICEMAIL
電話USE_SIP
電話PROCESS_OUTGOING_CALLS
傳感器BODY_SENSORS
短信SEND_SMS
短信RECEIVE_SMS
短信READ_SMS
短信RECEIVE_WAP_PUSH
短信RECEIVE_MMS
存儲READ_EXTERNAL_STORAGE
存儲WRITE_EXTERNAL_STORAGE

還有指紋識別權限:

<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 注意:如果應用程序請求在AndroidManifest中列出的危險權限,并且應用程序已經在同一權限組中具有另一個危險權限,系統會立即授予權限,而不會與用戶進行任何交互,。例如,如果一個應用程序先前已經請求并被授予READ_CONTACTS權限,然后它請求WRITE_CONTACTS(同屬于聯系人一組),系統會立即授予該權限,不會再彈出權限授予詢問的對話框。

2.動態申請權限的方法:

首先,需要在AndroidManifest.xml靜態申請權限,否則無法動態申請權限,以下代碼位置不能放錯(在application之外):

<uses-permission android:name="android.permission.上表的權限字符" />

3、java代碼申請權限、如下申請相機和文件讀寫權限

public class MainActivity extends AppCompatActivity {private static final String[] authBaseArr = {//申請類型Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE};private static final int authBaseRequestCode = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initNavi();//申請權限}private boolean hasBasePhoneAuth() {PackageManager pm = getPackageManager();for (String auth : authBaseArr) {if (pm.checkPermission(auth, getPackageName()) != PackageManager.PERMISSION_GRANTED) {return false;}}return true;}private void initNavi() {// 申請權限if (android.os.Build.VERSION.SDK_INT >= 23) {if (!hasBasePhoneAuth()) {this.requestPermissions(authBaseArr, authBaseRequestCode);return;}}}}

3、實現方法2——簡便實現

1、添加依賴

implementation 'pub.devrel:easypermissions:1.2.0'

2、申請權限

String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION}; if (!EasyPermissions.hasPermissions(this, perms)) {EasyPermissions.requestPermissions(this, "App正常運行需要存儲權限、媒體權限", 1, perms); }

4、獲取權限原生方法

ActivityCompat.requestPermissions(TongxunluActivity.this, new String[]{Manifest.permission.READ_CONTACTS}, 1);

ActivityCompat.requestPermissions(TongxunluActivity.this, new String[]{Manifest.permission.READ_CONTACTS,Manifest.permission.READ_EXTERNAL_STORAGE}, 1);

protected static String[] permissions = {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_PHONE_STATE };

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {requestPermissions(permissions, 1);return; }

總結

以上是生活随笔為你收集整理的Android 6.0及以上版本动态申请权限,11权限的全部內容,希望文章能夠幫你解決所遇到的問題。

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