Android悬浮窗的开源库有很多,之前一直使用的,也非常好用!
这个库支持应用内以及应用外悬浮窗,只是在高版本中需要申请悬浮窗权限,有时并不需要应用外悬浮窗,但在高版本仍旧需要申请权限,就有点不对劲了!
所以参考了其他的开源项目,自己又整理了一个简单好用的开源悬浮项目,欢迎大家指正纠错!
下面就大概说明一下这个项目
应用内悬浮窗,低侵入性,无权限申请,简单配置,全局可用,支持滑动,点击事件
Android悬浮窗的开源库有很多,之前一直使用的,也非常好用!
这个库支持应用内以及应用外悬浮窗,只是在高版本中需要申请悬浮窗权限,有时并不需要应用外悬浮窗,但在高版本仍旧需要申请权限,就有点不对劲了!
所以参考了其他的开源项目,自己又整理了一个简单好用的开源悬浮项目,欢迎大家指正纠错!
下面就大概说明一下这个项目
应用内悬浮窗,低侵入性,无权限申请,简单配置,全局可用,支持滑动,点击事件
华为手机如何分屏显示? 以华为Mate 40手机为例:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。
2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。
华为手机如何分屏游戏 以华为Mate 40手机为例:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。
2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。
华为手机怎么上下分屏 以华为Mate 40手机为例:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。
2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。
华为20该怎么分屏? 以华为Mate 40手机为例:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。
2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。
华为分屏怎么设置啊 分屏方式如下:
长按蕞近键启动分屏:打开支持分屏的应用后,长按方框可启动分屏。
其他分屏方式:点击导航键的方框进入蕞近任务,如果您使用的是手势导航方式,可以从屏幕底部边缘上滑并停顿,即可进入蕞近任务,然后选择支持分屏的应用,点击应用上方的两个矩形开启分屏。
华为怎么分屏操作技巧 以华为Mate 40手机为例:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。
2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。
华为手机怎么开分屏模式
如果您咨询的是荣耀20分屏方法,建议按如下方法操作:
1、三指上滑启动分屏:打开应用后,三指从屏幕内上滑启动分屏,上滑操作不要从屏幕底部边缘启动。
2、长按蕞近键启动分屏:使用虚拟三键导航时,打开应用,长按可启动分屏。
3、应用上方的启动分屏:
1)在屏幕内三键导航方式下,点击导航键的进入蕞近任务;如果您使用的是手势导航方式,可以从屏幕底部边缘上滑并停顿,进入蕞近任务。
2)点击支持分屏应用上方的开启分屏。
4、智能分屏:全屏观看视频时,如果收到短信或消息提醒,会有横幅提示分屏。
华为手机怎么设置分屏功能设置 怎样实现华为手机分屏功能?简单一步教你
打开多任务界面,点击任务卡片界面右上角分屏按钮,进入分屏模式,点击需要分屏的应用,打开后成功进入多任务分屏模式,滑动可调节窗口界面大小,点击屏幕右上角叉号,即可退出分屏模式。
我们都知道电脑能够多窗口运行软件,这样可以提升工作效率,也可以边办公边娱乐,部分手机也有这个功能,大家也都有了解过。那么你知道华为手机如何分屏吗?华为手机分屏有三种简单的方法哦,超实用,一起来看一下吧!
**种方法:官宣的指关节分屏
使用华为的指关节不仅仅可以截屏哦,分屏也同样可以,使用指关节在支持分屏的应用界面轻敲划一道横线即可分屏,这里是演示主屏界面是不支持分屏的。(注意:支持指关节截屏的华为手机才可以用此法,例如P系列,MATE系列等)
打开百度APP,查看更多高清图片
第二种方法:按键分屏法
没有指关节功操作能的用户也不要着急。使用华为手机屏幕上的后台方框键盘,也可以实现分屏。操作方法:在支持分屏的应用界面长按箭头所指方向键可以实现快速分屏。
分屏效果如下:分屏后中间会有一个按键,点开有开关可以关闭分屏。
如果你不喜欢长按分屏的方法短按后台键也是可以的,先按后台方框键,然后后台会出现两个叠加的小方块,通过这个按键可以实现快速分屏。
对于有实体按键的没有调出虚拟键的P20系列,也可以使用屏幕下方的按键左滑或者右滑动调出后台再分屏,操作类似。
打开手机的自动旋转,当你横屏时分屏界面也会自动横屏。
同样的点开分屏界面中间的按键也可以调出两个操作菜单
双向箭头的是分屏内容左右或者上下调换顺序,X是关闭分屏。
在手机界面从底部往上滑,然后稍作停留,可以调出后台。
然后和上面的后台分屏法一样点击叠加的小方块也可以实现分屏,
如果不喜欢全面屏手势或者分屏麻烦也可以使用系统的虚拟键导航,操作方法:系统设置,系统导航方式,选择中间的那个即可。返回键左右方向可以在“更多设置”里调节。
华为手机怎么分屏同时进行 以华为Mate 40手机为例:
1、打开某个应用后,在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
2、长按并拖拽应用栏中的应用图标至屏幕,开启分屏。
长按分屏窗口顶部的横条至分屏窗口缩小后,拖拽该窗口至另外一个分屏窗口。
按住分屏中间线上的横条或竖条拖动直至另外一个窗口消失。
部分应用不支持分屏显示。
同一时间只能使用两个分屏应用。
四、在分屏应用间快速拖拽
打开分屏应用后,可以直接在应用间拖拽图片、文字或文档。
1、拖拽图片:例如,在编辑备忘录时,同时打开文件管理并选中一张图片,可将其拖拽至备忘录编辑页面。
2、拖拽文字:例如,在发送信息时,同时打开备忘录长按并标选中需要文字,再次长按可将其拖拽至微信中。
3、拖拽文档:例如,在编辑电子邮件时,同时打开文件管理选中一篇文档,可将其拖拽至电子邮件。
部分应用不支持应用间拖拽。
五、添加、移动或移除分屏应用
1、添加应用:调出智慧多窗应用栏,点击加号,点击要添加的应用,点击完成。
2、移动应用:调出智慧多窗应用栏,点击加号,在应用栏中长按应用图标并拖拽,可将其移动到应用栏任一位置,点击完成。
3、移除应用:调出智慧多窗应用栏,点击加号,在应用栏中点击应用图标右上角的减号移除应用,点击完成。
六、分屏与悬浮窗相互切换
1、分屏切换为悬浮窗:手机竖屏时,长按分屏窗口顶部横条向左或向右滑动可切换为悬浮窗;手机横屏时,长按分屏窗口顶部横条向下滑动可切换为悬浮窗。
2、悬浮窗切换为分屏:手机竖屏时,长按悬浮窗顶部横条向上或向下拖动切换至分屏;手机横屏时,长按悬浮窗顶部横条向左或向右拖动切换至分屏。
七、打开单个应用的多窗口
您可以打开单个应用(如:邮件、备忘录)的多个任务窗口,在多个任务窗口间拖拽图片、文字或文档。
部分应用程序不支持此功能,请以实际情况为准。
1、分屏打开单个应用的多任务窗口。
打开邮件应用的一个任务窗口。
在手机屏幕左侧或右侧,从外向内滑动屏幕并停顿,调出智慧多窗应用栏。
长按并拖拽应用栏中的邮件应用图标至屏幕,分屏开启邮件应用的多任务窗口。
2、在单个应用的多任务窗口间快速拖拽。
拖拽图片:从一个邮件任务窗口选中一张图片,可将其拖拽至另一个邮件任务窗口中。
拖拽文字:从一个邮件任务窗口长按并标选中需要文字,再次长按可将其拖拽至另一个邮件任务窗口中。
拖拽文档:从一个邮件任务窗口选中一个文档,可将其拖拽至另一个邮件任务窗口中。
智慧多窗功能默认开启,若您想要关闭:
进入设置 > 辅助功能 > 智慧多窗 ,关闭智慧多窗应用栏。
1、华为手机,按手机底部的“口”图标。
2、点击“口”图标后,进入后台程序,需要哪个程序跟桌面分屏,就点哪个程序右上角的分屏图标。
3、点击分屏图标后,就可以进行分屏显示了。
4、如果要取消分屏,点击返回图标。
5、即可取消分屏显示。
免责声明:其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。如若本网有任何内容侵犯您的权益,请及时联系站长撤稿
Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注。因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变。
没有深入了解运行时权限的开发者通常会有很多疑问,比如什么是运行时权限,哪些是运行时的权限,我的应用是不是会在6.0系统上各种崩溃呢,如何才能支持运行时权限机制呢。本文讲尝试回答这一些问题,希望读者阅读完成之后,都能找到较为完美的答案。
在6.0以前的系统,都是权限一刀切的处理方式,只要用户安装,Manifest申请的权限都会被赋予,并且安装后权限也撤销不了。
这种情况下,当我们从Google Play安装一个应用,在安装之前会得到这样的权限提示信息。
当上述对话框弹出后,用户只有两种选择:
所以,这种一刀切的处理方式还是有弊端的,我们没有办法只允许某些权限或者拒绝某些权限。
从棉花糖开始,Android系统引入了新的权限机制,即本文要讲的运行时权限。
何为运行时权限呢?举个栗子,以某个需要拍照的应用为例,当运行时权限生效时,其Camera权限不是在安装后赋予,而是在应用运行的时候进行请求权限(比如当用户按下”相机拍照“按钮后)看到的效果则是这样的
接下来,对于Camera权限的处理完全权交给用户。是不是有点像苹果系统的处理呢,不要说这是抄袭,暂且称为师夷长技以制夷。
Android中有很多权限,但并非所有的权限都是敏感权限,于是6.0系统就对权限进行了分类,一般为下述几类
正常权限具有如下的几个特点
上述的权限基本设计的是关于网络,蓝牙,时区,快捷方式等方面,只要在Manifest指定了这些权限,就会被授予,并且不能撤销。
这里讲特殊权限提前讲一下,因为这个相对来说简单一些。
特殊权限,顾名思义,就是一些特别敏感的权限,在Android系统中,主要由两个
关于上面两个特殊权限的授权,做法是使用startActivityForResult启动授权界面来完成。
危险权限实际上才是运行时权限主要处理的对象,这些权限可能引起隐私问题或者影响其他程序运行。Android中的危险权限可以归为以下几个分组:
各个权限分组与其具体的权限,可以参考:
必须要支持运行时权限么
目前应用实际上是可以不需要支持运行时权限的,但是最终肯定还是需要支持的,只是时间问题而已。
想要不支持运行时权限机制很简单,只需要将targetSdkVersion设置低于23就可以了,意思是告诉系统,我还没有完全在API 23(6.0)上完全搞定,不要给我启动新的特性。
不支持运行时权限会崩溃么
可能会,但不是那种一上来就噼里啪啦崩溃不断的那种。
如果你的应用将targetSdkVersion设置低于23,那么在6.0的系统上不会为这个应用开启运行时权限机制,即按照以前的一刀切方式处理。
6.0系统提供了一个应用权限管理界面,界面长得是这样的
既然是可以管理,用户就能取消权限,当一个不支持运行时权限的应用某项权限被取消时
系统会弹出一个对话框提醒撤销的危害,如果用户执意撤销,会带来如下的反应
如果用户撤消了获取DeviceId的权限,那么再次运行时,deviceId就是null,如果程序后续处理不当,就会出现崩溃。
6.0的运行时权限,我们最终都是要支持的,通常我们需要使用如下的API
该方法是异步的,第一个参数是Context;第二个参数是需要申请的权限的字符串数组;第三个参数为requestCode,主要用于回调的时候检测。可以从方法名requestPermissions
以及第二个参数看出,是支持一次性申请多个权限的,系统会通过对话框逐一询问用户是否授权。
intent中指定了action,permissions,包名等等,所以如果我们想自定义权限弹框,可以在此做出修改。
当用户拒绝,你的应用可能就开始危险了;
当我们再次尝试申请权限时,弹出的对话框和之前有点不一样了,主要表现为多了一个checkbox。
当用户勾选了”不再询问“拒绝后,你的程序基本这个权限就Game Over了。
不过,你还有一丝希望,那就是再出现上述的对话框之前做一些说明信息,比如你使用这个权限的目的(一定要坦白)。
以上两个方法,就是用户操作之后,执行回调的位置,返回用户操作的结果。
批量申请权限很简单,只需要字符串数组放置多个权限即可。如请求代码
注意:间隔较短的多个权限申请建议设置成单次多个权限申请形式,避免弹出多个对话框,造成不太好的视觉效果。
申请这么多权限岂不是很累
其实你不需要每个权限都去显式申请,举一个例子,如果你的应用授权了读取联系人的权限,那么你的应用也是被赋予了写入联系人的权限。
因为读取联系人和写入联系人这两个权限都属于联系人权限分组,所以一旦组内某个权限被允许,该组的其他权限也是被允许的。
当我们支持了6.0必须也要支持4.4,5.0这些系统,所以需要在很多情况下,需要有两套处理。比如Camera权限
运行时权限对于应用影响比较大的权限有两个,他们分别是
其中READ_PHONE_STATE用来获取deviceID,即IMEI号码。这是很多统计依赖计算设备唯一ID的参考。如果新的权限导致读取 不到,避免导致统计的异常。建议在完全支持运行时权限之前,将对应的值写入到App本地数据中,对于新安装的,可以采取其他策略减少对统计的影响。
WRITE_EXTERNAL_STORAGE/READ_EXTERNAL_STORAGE这两个权限和外置存储(即sdcard)有关,对于下载相关的应用这一点还是比较重要的,我们应该尽可能的说明和引导用户授予该权限。
即使支持了运行时权限,也要在Manifest声明,因为市场应用会根据这个信息和硬件设备进行匹配,决定你的应用是否在该设备上显示。
个人觉得Marshmallow的运行时权限对于用户来说绝对是一个好东西,但是目前想要支持需要做的事情还是比较多的。
对于一个有很多依赖的宿主应用,想要做到支持还是有一些工作量的,因为你的权限申请受制于依赖。
建议在短期内暂时可以不考虑支持该运行时权限机制,等时机成熟或者简单易用的第三方库完善之后再支持也未尝不可。