Android中的权限请求
生活随笔
收集整理的這篇文章主要介紹了
Android中的权限请求
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- Android中的權(quán)限請求
- Android中權(quán)限分類
- Android中的動態(tài)權(quán)限
- 概述
- 分類
- 請求方法
- 官方提供的API
- 步驟
- 代碼
- RxPermissions框架
- 引入依賴庫
- 聲明權(quán)限
- 申請單個權(quán)限
- 申請多個權(quán)限
- AndPermission
- 引入依賴庫
- 語法
- 申請權(quán)限(單個或多個)
- 總結(jié)
不積跬步,無以至千里;不積小流,無以成江海。要沉下心來,詩和遠方的路費真的很貴!
參考博客:小胡老師的博客
Android中的權(quán)限請求
在Android 6.0以后,Android中添加了動態(tài)請求權(quán)限。
Android中權(quán)限分類
- 普通權(quán)限
一般為那種請求數(shù)據(jù)和資源的權(quán)限,比如網(wǎng)絡(luò)請求權(quán)限。一般不告知用戶,用戶也不能撤銷這類權(quán)限。在Manifest中申請。
- 危險權(quán)限
一般設(shè)計到用戶隱私的權(quán)限,即為危險權(quán)限,需要動態(tài)請求。
- 特殊權(quán)限
一般對于系統(tǒng)的彈窗之類的權(quán)限。
Android中的動態(tài)權(quán)限
概述
在Android 6.0以后,申請危險權(quán)限,不僅要在Manifest中聲明,還要調(diào)用官方提供的API主動申請。
分類
總共分為9組,每一組中的一個權(quán)限申請成功,那么整組的權(quán)限都可以使用。
請求方法
官方提供的API
步驟
代碼
- 聲明權(quán)限
如果對于這類危險權(quán)限的申請,沒有在Manifest中聲明,那么就會默認不授權(quán),并不會彈窗給用戶選擇。
<!-- 在外部存儲設(shè)備中寫入和修改數(shù)據(jù) --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />- 邏輯代碼
RxPermissions框架
RxPermissions 可以簡化獲取權(quán)限的操作,而且內(nèi)部也自動幫我們判斷了版本是否需要申請權(quán)限。同時結(jié)合RxJava回調(diào)結(jié)果。
使用RxPermissions框架的最小SDK版本要大于等于14。
引入依賴庫
allprojects {repositories {...maven { url 'https://jitpack.io' }} }dependencies {implementation 'com.github.tbruyelle:rxpermissions:0.10.2'implementation 'io.reactivex.rxjava2:rxjava:2.0.1'implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' }聲明權(quán)限
危險權(quán)限的申請需要在Manifest文件中聲明。
<!--相機--> <uses-permission android:name="android.permission.CAMERA" />申請單個權(quán)限
//初始化RxPermissions框架RxPermissions permissions = new RxPermissions(this);//申請權(quán)限permissions.request(Manifest.permission.CAMERA).subscribe(new Consumer<Boolean>() {//RxJava的觀察者模式@Overridepublic void accept(Boolean aBoolean) {if (aBoolean ) {//接受Toast.makeText(MainActivity.this, "授權(quán)成功!", Toast.LENGTH_SHORT).show();}else {//拒絕Toast.makeText(MainActivity.this, "授權(quán)失敗!", Toast.LENGTH_SHORT).show();}}});申請多個權(quán)限
- 和申請單個權(quán)限沒區(qū)別,增加一下權(quán)限的種類即可。
AndPermission
引入依賴庫
implementation 'com.yanzhenjie:permission:2.0.3'語法
申請權(quán)限(單個或多個)
//直接使用框架AndPermission.with(this).runtime().permission(Permission.WRITE_EXTERNAL_STORAGE,Permission.CAMERA)//接受.onGranted(permissions -> {Toast.makeText(MainActivity.this, "授權(quán)成功!", Toast.LENGTH_SHORT).show();})//拒絕.onDenied(permissions -> {Toast.makeText(MainActivity.this, "授權(quán)失敗!", Toast.LENGTH_SHORT).show();})//啟動方法.start();總結(jié)
總結(jié)
以上是生活随笔為你收集整理的Android中的权限请求的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解析PAK文件
- 下一篇: Android9能用的flash播放器,