为什么我支持开启了悬浮窗权限没有悬浮窗的应用只有三个?

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)有关,对于下载相关的应用这一点还是比较重要的,我们应该尽可能的说明和引导用户授予该权限。

  • 不要使用多余的权限,新增权限时要慎重
  • 使用Intent来替代某些权限,如拨打电话(和你的产品经理PK去吧)
  • 对于使用权限获取的某些值,比如deviceId,尽量本地存储,下次访问直接使用本地的数据值
  • 注意,由于用户可以撤销某些权限,所以不要使用应用本地的标志位来记录是否获取到某权限。


即使支持了运行时权限,也要在Manifest声明,因为市场应用会根据这个信息和硬件设备进行匹配,决定你的应用是否在该设备上显示。


个人觉得Marshmallow的运行时权限对于用户来说绝对是一个好东西,但是目前想要支持需要做的事情还是比较多的。
对于一个有很多依赖的宿主应用,想要做到支持还是有一些工作量的,因为你的权限申请受制于依赖。
建议在短期内暂时可以不考虑支持该运行时权限机制,等时机成熟或者简单易用的第三方库完善之后再支持也未尝不可。

我要回帖

更多关于 开启了悬浮窗权限没有悬浮窗 的文章

 

随机推荐