當(dāng)前位置:
首頁(yè) >
Android 6.0及以上版本动态申请权限,11权限
發(fā)布時(shí)間:2023/12/10
45
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Android 6.0及以上版本动态申请权限,11权限
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//安卓11文件權(quán)限// 先判斷有沒(méi)有權(quán)限if (Environment.isExternalStorageManager()) {//已有權(quán)限-----------------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.需要用戶手動(dòng)賦予的權(quán)限( Dangerous Permissions)
| 日歷 | READ_CALENDAR |
| 日歷 | WRITE_CALENDAR |
| 相機(jī) | CAMERA |
| 聯(lián)系人 | READ_CONTACTS |
| 聯(lián)系人 | WRITE_CONTACTS |
| 聯(lián)系人 | GET_ACCOUNTS |
| 位置 | ACCESS_FINE_LOCATION |
| 位置 | ACCESS_COARSE_LOCATION |
| 麥克風(fēng) | 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 |
| 存儲(chǔ) | READ_EXTERNAL_STORAGE |
| 存儲(chǔ) | WRITE_EXTERNAL_STORAGE |
還有指紋識(shí)別權(quán)限:
<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 注意:如果應(yīng)用程序請(qǐng)求在AndroidManifest中列出的危險(xiǎn)權(quán)限,并且應(yīng)用程序已經(jīng)在同一權(quán)限組中具有另一個(gè)危險(xiǎn)權(quán)限,系統(tǒng)會(huì)立即授予權(quán)限,而不會(huì)與用戶進(jìn)行任何交互,。例如,如果一個(gè)應(yīng)用程序先前已經(jīng)請(qǐng)求并被授予READ_CONTACTS權(quán)限,然后它請(qǐng)求WRITE_CONTACTS(同屬于聯(lián)系人一組),系統(tǒng)會(huì)立即授予該權(quán)限,不會(huì)再?gòu)棾鰴?quán)限授予詢問(wèn)的對(duì)話框。2.動(dòng)態(tài)申請(qǐng)權(quán)限的方法:
首先,需要在AndroidManifest.xml靜態(tài)申請(qǐng)權(quán)限,否則無(wú)法動(dòng)態(tài)申請(qǐng)權(quán)限,以下代碼位置不能放錯(cuò)(在application之外):
<uses-permission android:name="android.permission.上表的權(quán)限字符" />3、java代碼申請(qǐng)權(quán)限、如下申請(qǐng)相機(jī)和文件讀寫權(quán)限
public class MainActivity extends AppCompatActivity {private static final String[] authBaseArr = {//申請(qǐng)類型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();//申請(qǐng)權(quán)限}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() {// 申請(qǐng)權(quán)限if (android.os.Build.VERSION.SDK_INT >= 23) {if (!hasBasePhoneAuth()) {this.requestPermissions(authBaseArr, authBaseRequestCode);return;}}}}3、實(shí)現(xiàn)方法2——簡(jiǎn)便實(shí)現(xiàn)
1、添加依賴
implementation 'pub.devrel:easypermissions:1.2.0'2、申請(qǐng)權(quán)限
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正常運(yùn)行需要存儲(chǔ)權(quán)限、媒體權(quán)限", 1, perms); }4、獲取權(quán)限原生方法
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; }總結(jié)
以上是生活随笔為你收集整理的Android 6.0及以上版本动态申请权限,11权限的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HDU 2243 考研路茫茫——单词情结
- 下一篇: Android开发启动未注册的activ