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