【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 简介 | 权限申请处理细节 | 添加依赖 | 界面权限申请结果处理 | 权限申请结果回调接口 )

简介: 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 简介 | 权限申请处理细节 | 添加依赖 | 界面权限申请结果处理 | 权限申请结果回调接口 )

文章目录

一、EasyPermissions 简介

二、EasyPermissions 权限申请处理细节

三、添加 EasyPermissions 依赖

四、权限申请结果处理 方法 onRequestPermissionsResult

五、权限申请结果回调接口 PermissionCallbacks





一、EasyPermissions 简介


EasyPermissions 是一个权限申请库 , 可以简化在 Android M 6.0 ( API Level 23 ) 及以上系统中的基本权限的动态申请操作 ;


GitHub 页面 : Github/EasyPermissions


发布版本页面 : EasyPermissions 发布版本下载


EasyPermissions 是 谷歌官方推荐 的动态权限申请库 ;






二、EasyPermissions 权限申请处理细节


权限申请处理细节 :


① 用户同意权限申请 : 一般情况下 结合 @AfterPermissionGranted 注解使用 , 该注解的作用是 , 如果指定的权限用户全部授权 , 那么再次回调该方法 , 执行实际的需要该权限的操作 ;


② 用户拒绝权限申请 : 用户之前拒绝了权限申请 , 再次申请时会弹出 权限申请原理对话框 , 让用户了解申请该权限的原因 ;


③ 用户永久拒绝权限申请 : 用户之前已经禁止询问权限申请 , 即永久拒绝了权限申请 , 此时需要弹出 引导用户设置权限对话框 , 该对话框的作用是 , 跳转到设置界面的权限设置页面 , 让用户自行设置权限 , 此时无法以 应用内对话框的形式设置权限 ;






三、添加 EasyPermissions 依赖


在 Module 级别的 build.gradle 中进行如下配置 :


dependencies {
    // 使用 Android X 的应用添加该依赖
    implementation 'pub.devrel:easypermissions:3.0.0'
    // 使用 Android Support Library 支持库 , 添加该依赖
    implementation 'pub.devrel:easypermissions:2.0.1'
}


注意 使用不同的支持库 , 需要配置不同的 EasyPermissions 依赖库 ;


使用 Android X : 需要添加 3.0.0 版本的依赖 ;

使用 Android Support Library 支持库 : 需要添加 2.0.1 版本的依赖 ;





四、权限申请结果处理 方法 onRequestPermissionsResult


在 Activity 中需要实现 onRequestPermissionsResult 方法 , 用于处理权限申请结果 , 如 : 用户点击同意后的后续操作 , 用户点击拒绝后的后续操作 , 都需要通过该接口通知 EasyPermissions , EasyPermissions 收到结果后 , 会回调相关的回调函数 ;


 

/**
     * 1. 重写 Activity 的 onRequestPermissionsResult 方法
     *    主要是在该方法中使用 EasyPermissions 进一步处理权限申请后续结果
     */
    override fun onRequestPermissionsResult(
        requestCode: Int, permissions: Array<out String>, grantResults: IntArray){
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        // 进一步使用 EasyPermissions 处理后续结果
        EasyPermissions.onRequestPermissionsResult(
            requestCode, permissions, grantResults, this);
    }






五、权限申请结果回调接口 PermissionCallbacks


权限申请结果回调接口 PermissionCallbacks :


① 接口方法 :


/**
     * EasyPermissions.requestPermissions() 方法执行结果的回调接口
     */
    public interface PermissionCallbacks extends ActivityCompat.OnRequestPermissionsResultCallback {
        void onPermissionsGranted(int requestCode, @NonNull List<String> perms);
        void onPermissionsDenied(int requestCode, @NonNull List<String> perms);
    }


② 申请单个权限成功 : 回调 onPermissionsGranted 方法 , perms 参数是请求成功的权限字符串集合 ;


③ 申请单个权限失败 : 回调 onPermissionsDenied方法 , perms 参数是请求失败的权限字符串集合 ;


④ 申请多个权限 : 如果申请 5 个权限 , 3 个同意 , 2 个拒绝 , 那么就会 回调 onPermissionsGranted 和 onPermissionsDenied 方法各一次 , 每个回调方法中都会显示同意或拒绝的若干个权限 ;


目录
相关文章
|
2月前
|
存储 XML 开发工具
探索安卓应用开发:从基础到进阶
在这篇文章中,我们将一起踏上安卓应用开发的旅程。不论你是编程新手还是希望提升技能的开发者,这里都有你需要的东西。我们会从最基础的概念开始,逐步深入到更复杂的主题。文章将涵盖开发环境设置、用户界面设计、数据处理以及性能优化等方面。通过理论与实践的结合,你将能够构建出既美观又高效的安卓应用。让我们一起开启这段技术之旅吧!
|
28天前
|
搜索推荐 Android开发 开发者
安卓应用开发中的自定义控件实践
在安卓应用开发的广阔天地中,自定义控件如同璀璨的星辰,点亮了用户界面设计的夜空。它们不仅丰富了交互体验,更赋予了应用独特的个性。本文将带你领略自定义控件的魅力,从基础概念到实际应用,一步步揭示其背后的原理与技术细节。我们将通过一个简单的例子——打造一个具有独特动画效果的按钮,来展现自定义控件的强大功能和灵活性。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往更高阶UI设计的大门。
|
2月前
|
缓存 监控 前端开发
探索Android应用开发之旅:从新手到专家
【10月更文挑战第42天】本文将带你踏上Android应用开发的旅程,无论你是初学者还是有经验的开发者。我们将一起探索如何从零开始创建你的第一个Android应用,并逐步深入到更高级的主题,如自定义视图、网络编程和性能优化。通过实际示例和清晰的解释,你将学会如何构建高效、吸引人的Android应用。让我们一起开启这段激动人心的旅程吧!
|
2月前
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
Android开发 数据安全/隐私保护 开发者
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
459 0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
|
Android开发
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(二)
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(二)
529 0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(二)
|
Android开发
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )
401 0
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
27天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
53 19
|
28天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
56 14