首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 6.0无需提示即可自动获取权限

Android 6.0引入了一项重要的变化,即运行时权限。在此之前,Android应用程序在安装时会自动获取所有权限,而用户只能在安装应用程序之前决定是否接受这些权限。然而,这种做法存在一些安全隐患和隐私问题。

为了解决这个问题,Android 6.0引入了运行时权限模型。这意味着应用程序在运行时需要向用户请求权限,而用户可以选择授予或拒绝这些权限。这种方式使用户能够更好地控制应用程序对其设备和个人数据的访问权限。

Android 6.0无需提示即可自动获取权限是指应用程序可以在用户授予权限之前自动获取某些权限,而无需显示权限请求对话框。这些权限被称为"危险权限",包括访问设备的摄像头、麦克风、联系人、位置等敏感信息。

Android系统会根据应用程序在清单文件中声明的权限和目标API级别来确定是否自动授予这些权限。如果应用程序在清单文件中声明了所需的权限,并且目标API级别低于或等于23(Android 6.0的API级别),则系统会自动授予这些权限。

然而,需要注意的是,即使应用程序在清单文件中声明了权限,也不能保证系统会自动授予这些权限。在某些情况下,系统仍然会显示权限请求对话框,让用户决定是否授予权限。

Android 6.0无需提示即可自动获取权限的优势在于简化了用户体验,减少了对话框的干扰。对于一些常用的权限,应用程序可以在后台自动获取,而无需打扰用户。这样可以提高应用程序的流畅性和用户满意度。

Android 6.0无需提示即可自动获取权限的应用场景包括但不限于以下几个方面:

  1. 相机和麦克风权限:应用程序可以在后台自动获取相机和麦克风权限,以便进行视频通话、语音识别等功能。
  2. 位置权限:应用程序可以在后台自动获取位置权限,以便提供基于位置的服务,如导航、附近的人、附近的商店等。
  3. 联系人权限:应用程序可以在后台自动获取联系人权限,以便实现联系人同步、社交网络集成等功能。

腾讯云提供了一系列与Android开发相关的产品和服务,包括但不限于:

  1. 腾讯云移动应用分析(https://cloud.tencent.com/product/mga):提供移动应用数据分析和统计服务,帮助开发者了解应用程序的使用情况和用户行为。
  2. 腾讯云移动推送(https://cloud.tencent.com/product/tpns):提供移动应用消息推送服务,帮助开发者实现消息推送功能。
  3. 腾讯云移动直播(https://cloud.tencent.com/product/mlvb):提供移动应用直播服务,帮助开发者实现实时音视频直播功能。
  4. 腾讯云移动短信(https://cloud.tencent.com/product/sms):提供移动应用短信发送服务,帮助开发者实现短信验证码、通知等功能。

以上是关于Android 6.0无需提示即可自动获取权限的完善且全面的答案,希望对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(一百五十八)运行时动态授权管理

App开发过程中,涉及到硬件设备的操作,比如拍照、录音、定位等等,都要在AndroidManifest.xml中声明相关的权限。可是Android系统为了防止某些App滥用权限,从而允许用户在系统设置里面对App禁用某些权限。然而这又带来另一个问题,用户打开App之后,App可能因为权限不足导致无法正常运行,甚至直接崩溃闪退。遇到这种情况,只需用户在系统设置中开启相关权限即可恢复正常,但是用户并非专业的开发者,他怎知要去启用哪些权限呢?再说,每次都要用户亲自打开系统设置页面,再琢磨半天精挑细选那些必须开启的权限,不但劳力而且劳神,这种用户体验实在差劲。 有鉴于此,Android从6.0开始引入了运行时权限管理机制,允许App在运行过程中动态检查是否拥有某项权限,一旦发现缺少某种必需的权限,则系统会自动弹出小窗提示用户去开启该权限。如此这般,一方面开发者无需担心App因权限不足而闪退的问题,另一方面用户也不再头痛是哪个权限被禁止导致App用不了的毛病,这个贴心的动态权限授权功能可谓是皆大欢喜。下面就来看看如何在代码中实现运行时权限管理机制。 首先要检查Android系统是否为6.0及以上版本,因为运行时权限管理机制是6.0才开始支持的功能。其次调用ContextCompat.checkSelfPermission方法,检查检查当前App是否开启了指定的权限。倘若检查结果是尚未开启权限,则再调用ActivityCompat.requestPermissions方法,请求系统弹出开启权限的确认对话框。详细的权限校验代码如下所示:

01

Android6.0之后的权限机制对App开发的影响

随着Android系统的更新换代,每次重大更新的方面也逐步扩展,从4.*主要是增强功能,到5.*主要是美化界面,到6.*主要提高系统安全性,再到7.*和8.*主要支撑各种大屏设备,因此开发者需要对每个大版本的Android重新进行适配。其中6.*主要影响开发工作的升级包括权限管理和休眠模式。 对于权限管理,原本开发者只要在AndroidManifest.xml中声明相关权限,App安装完成之后即可默认获得这些权限。但是6.0引入了新的运行时权限管理机制,即使开发者实现已经声明App的权限,Android在App初次启动之时,仍会提示用户是否允许该App开启相关功能。倘若用户不同意App获得某些权限,毫无疑问App在运行过程中就可能无法正常工作。有关运行时权限的操作代码参见《Android开发笔记(一百五十八)运行时动态授权管理》。 对于休眠模式,即当手机屏幕关闭的时候,系统会自动进入休眠模式,这样原本正在运行的App将进入挂起模式,不能再进行访问网络等常用操作。当然为了保证App不被完全挂死,系统也会定时退出休眠模式,好比青蛙从冬眠之中苏醒过来,在苏醒期间,系统允许挂起的App重新恢复运行,继续先前设定好的任务。可是这个苏醒期是短暂的(通常只有几秒),一旦苏醒期结束,系统又重新进入休眠模式,于是那些App再次挂起,等待下次苏醒期的到来,如此往复。当然,只要手机恢复亮屏,比如用户按下电源键、用户给手机插上电源、手机接到来电等等,系统便自动退出休眠模式,所有挂起的App都会恢复正常运转。 下面逐个说明一下Android6.0的权限管理和休眠模式给App开发带来的影响,注意这些影响可对照《Android Studio开发实战:从零基础到App上线》一书的相应章节: 1、App的SD卡访问权限可能会被用户关闭,导致App无法正常读写SD卡。这点影响《Android Studio开发实战:从零基础到App上线》一书第4章的“4.3 SD卡文件操作”和“4.5 实战项目:购物车”。手机上查看App是否开启存储卡访问功能的界面如下图所示:

02

《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序

《移动互联网技术》课程是软件工程、电子信息等专业的专业课,主要介绍移动互联网系统及应用开发技术。课程内容主要包括移动互联网概述、无线网络技术、无线定位技术、Android应用开发和移动应用项目实践等五个部分。移动互联网概述主要介绍移动互联网的概况和发展,以及移动计算的特点。无线网络技术部分主要介绍移动通信网络(包括2G/3G/4G/5G技术)、无线传感器网络、Ad hoc网络、各种移动通信协议,以及移动IP技术。无线定位技术部分主要介绍无线定位的基本原理、定位方法、定位业务、数据采集等相关技术。Android应用开发部分主要介绍移动应用的开发环境、应用开发框架和各种功能组件以及常用的开发工具。移动应用项目实践部分主要介绍移动应用开发过程、移动应用客户端开发、以及应用开发实例。 课程的教学培养目标如下: 1.培养学生综合运用多门课程知识以解决工程领域问题的能力,能够理解各种移动通信方法,完成移动定位算法的设计。 2.培养学生移动应用编程能力,能够编写Andorid应用的主要功能模块,并掌握移动应用的开发流程。 3. 培养工程实践能力和创新能力。  通过本课程的学习应达到以下目的: 1.掌握移动互联网的基本概念和原理; 2.掌握移动应用系统的设计原则; 3.掌握Android应用软件的基本编程方法; 4.能正确使用常用的移动应用开发工具和测试工具。

01
领券