Coder Social home page Coder Social logo

floatwindowpermission's Introduction

FloatWindowPermission

this repository is aimed to adapt android float window permission in most of phone models and how to request it at runtime

its result is as follows :
这里写图片描述

if you want to see more,click here

from now on,the models below android M that have been adapted are :

  • xiaomi:v5,v6,v7,v8
  • huawei:partial
  • meizu:partial
  • 360:partial
  • others:phones like samsung,sony or other model can directly show the float window, so there is no need to adapt,but if you find one that can not,contact me via my email([email protected]) or leave a message on my blog i mentioned above,thanks

more details about the models that have been adapted(thanks ruanqin0706 for help):

6.0/6.0+

most models are OK with this way of adaption except meizu:

机型 版本 详细信息 适配完成 具体表现
魅族 PRO6 6.0 型号:PRO6;版本:6.0;分辨率:1920*1080 检测权限结果有误,微信可正常缩小放大,而我方检测为未开启权限,为跳转至开启权限页
魅族 U20 6.0 型号:U20;版本:6.0;分辨率:1920*1080 检测权限结果有误,微信可正常缩小放大,而我方检测为未开启权限,为跳转至开启权限页

conclusion:

汇总结果
Android6.0 及以上机型覆盖:58款,其中:
三星:10款,均正常
华为:21款,均正常
小米:5款,均正常
魅族:2款,异常(1.检测权限未开启,点击 Android 6.0 及以上跳转,无法跳转,却可以选择魅族手机设置,设置后,悬浮窗打开缩小正常;2.在魅族上,及时设置悬浮窗关闭,微信也可正常缩小,但是我们检测的悬浮窗是否开发结果,和实际系统的设置是匹配的。)
其他:20款,均正常

until now(2016-11-21), this problem has been solved, we have made a special treatment to the ROM above 6.0 include 6.0 in meizu mobiles.

huawei

here is the test result for huawei mobiles:

机型 版本 适配完成 具体表现 默认设置
华为荣耀x2 5.0 跳转至通知中心页面,而非悬浮窗管理处 默认关闭
华为畅玩4x(电信版) 4.4.4 可以优化 跳转至通知中心标签页面,用户需切换标签页(通知中心、悬浮窗为两个不同标签页) 默认关闭
华为 p8 lite 4.4.4 可以优化 跳转至通知中心标签页面,用户需切换标签页(通知中心、悬浮窗为两个不同标签页) 默认关闭
华为荣耀 6 移动版 4.4.2 可以优化 跳转至通知中心标签页面,用户需切换标签页(通知中心、悬浮窗为两个不同标签页) 默认关闭
华为荣耀 3c 电信版 4.3 跳转至通知中心,但默认是开启悬浮窗的 默认关闭
华为 G520 4.1.2 直接点击华为跳转设置页按钮,闪退 默认开启

conclusion:

汇总结果 完全兼容机型数量 次兼容机型数量 总测试机型数 兼容成功率
华为6.0以下机型覆盖:18款,其中:
5.0.1以上:11款,均默认开启,且跳转设置页面正确;5.0:1款,处理异常
(默认未开启悬浮窗权限,且点击跳转至通知栏,非悬浮窗设置入口)
4.4.4、4.4.2:3款,处理可接受
(默认未开启悬浮窗权限,点击跳转至通知中心的“通知栏”标签页,可手动切换至“悬浮窗”标签页设置)
4.3:1款,处理可接受
(默认开启,但点击华为跳转设置页,跳转至通知中心,无悬浮窗设置处)
4.2.2:1款,默认开启,处理正常
4.1.2:1款,处理有瑕疵
(默认开启,但若直接点击华为跳转按钮,出现闪退)
12 5 18 94.44%

waiting for adapted...

xiaomi

most of xiaomi mobiles are adapted very well except some paticular models:

机型 版本 适配完成 具体表现
小米 MI 4S 5.1.1 无悬浮窗权限,点击小米手机授权页跳转按钮,无反应
小米 红米NOTE 1S 4.4.4 未执行 未修改开启悬浮窗成功,真机平台不支持(为权限与之前系统有别)
小米 红米1(联通版) 4.2.2 未执行 未安装成功

here is the conclusion:

汇总结果 完全兼容机型数量 次兼容机型数量 总测试机型数 兼容成功率
小米6.0以下机型覆盖:10款,其中:
5.1.1 小米 MI 4S:1款,兼容失败
(默认未开启,点击小米手机授权按钮,无跳转)
其他:9款,均成功
9 0 10 90%

samsung

almost 100% of the samsung mobiles are adapted very well and here is the conclusion of samsung:

汇总结果 完全兼容机型数量 次兼容机型数量 总测试机型数 兼容成功率
三星6.0以下机型覆盖:28款,全部检测处理成功
(默认均开启悬浮窗权限)
28 0 28 100%

oppo&&vivo##

only test a small part of the mobiles and here is the result:

机型 版本 适配完成 是否默认开启
OPPO R7sm 5.1.1 默认开启
OPPO R7 Plus 5.0 默认开启
OPPO R7 Plus(全网通) 5.1.1 默认开启
OPPO A37m 5.1 未执行 默认未开启,且无法设置开启(平台真机限制修改权限导致)
OPPO A59m 5.1.1 默认开启

conclusion:

汇总结果
抽查3款,2个系统版本,均兼容,100%

others##

we random pick some other models like HTC and Sony and here is the result:

机型 是否正常
蓝魔 R3
HTC A9
摩托罗拉 Nexus 6
VIVO V3Max A
金立 M5
HTC One E8
努比亚 Z11 Max
Sony Xperia Z3+ Dual
酷派 大神Note3
三星 GALAXY J3 Pro(双4G)
三星 Note 5
中兴 威武3
中兴 Axon Mini

conclusion:

汇总结果
随机抽查看13款,全部测试正常,100%

floatwindowpermission's People

Contributors

liyuzhao avatar panhongjin avatar pinocchio2mx avatar shuifengyu avatar zhaozepeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

floatwindowpermission's Issues

感觉这个方案稍显复杂,提供一个反射绕过通知权限思路

2017080209000810

https://github.com/xiaogaofudao/Android-Widget/blob/master/toast/src/main/java/com/gaogeek/toast/Toast.java

经测试。发现 Android 7.1.1 及以后 对于 Toast 的 show 方法 加入了 IBinder token 限制。如果 targetSdkVersion 大于 25。会导致Toast 校验 token,从而引发 崩溃。如果 targetSdkVersion 小于 26。经测试可以在所有android 版本正常弹出Toast(可绕过通知权限)。

如果能构造一个 合法的 IBinder token 就完美了。束手无策求大神完善

小米6手机自动获取权限

博主:
你好,请问怎么能像其他第三方sdk渠道一样,不需要用户手动去申请权限!直接就获得权限!
您的这边博客能不能抽个时间完善一下!
万分感谢

360手机开启权限问题

手机:8681-M02 系统:5.1
问题:点击去开启以后报错
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.settings/com.android.settings.Settings$OverlaySettingsActivity}; have you declared this activity in your AndroidManifest.xml?

at com.geely.g_assistant.utils.permission.rom.QikuUtils.applyPermission(QikuUtils.java:55)
at com.geely.g_assistant.utils.permission.FloatWindowManager$1.confirmResult(FloatWindowManager.java:133)
at com.geely.g_assistant.utils.permission.FloatWindowManager$6.onClick(FloatWindowManager.java:218)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:174)

基于安卓7.0的MIUI9适配问题

经过测试,在基于安卓6.0的MIUI9上可以正常显示悬浮窗,在基于安卓7.0的MIUI9上却无法显示(即时打开了悬浮窗权限)。请问为什么会这样呢?

华为荣耀v8最新的7.0系统上的一些问题

华为荣耀v8最新的7.0系统上,明明应用的悬浮窗权限没有给,但是依旧能打开type为TYPE_SYSTEM_ALERT的悬浮窗。
而且您的FloatWindowManager似乎也未能跳到悬浮窗管理页面(应该说跳转的位置不够合理)。希望能看看

Miui8 无法调起权限界面

Miui 8.0.4.0 是 com.miui.permcenter.permissions.AppPermissionsEditorActivity
Miui 8.6.x 是 com.miui.permcenter.permissions.PermissionsEditorActivity
不知道是哪个版本开始改变的

Android O系统崩溃

当build.gradle中的compileSdkVersion和targetSdkVersion设置为26以上时,运行项目工程,允许悬浮窗权限之后,在单击显示悬浮窗按键应用就会崩溃。崩溃代码:04-17 11:07:29.615 4476-4476/com.android.floatwindowpermission E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.android.floatwindowpermission, PID: 4476
android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@92c763a -- permission denied for window type 2010
at android.view.ViewRootImpl.setView(ViewRootImpl.java:905)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:369)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:128)
at com.android.permission.FloatWindowManager.showWindow(FloatWindowManager.java:313)
at com.android.permission.FloatWindowManager.applyOrShowFloatWindow(FloatWindowManager.java:61)
at com.android.floatwindowpermission.FloatWindowActivity$1.onClick(FloatWindowActivity.java:29)
at android.view.View.performClick(View.java:6291)
at android.view.View$PerformClick.run(View.java:24931)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7415)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)`

问题产生原因是:TYPE_SYSTEM_ERROR或者TYPE_TOAST在android 26被废弃,新增TYPE_APPLICATION_OVERLAY。
具体解决代码:
int mType; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { mType = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; } else { mType = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR; } mParams.type = mType;

vivo X21A在应用回到后台时无法显示悬浮窗

vivo X21A,应用在前台可以显示悬浮窗,当应用在后台,悬浮窗就消失了。需要进入到手机权限管理,手动打开应用的悬浮窗权限,应用在后台才能显示悬浮窗。有办法解决吗?

检测悬浮窗是否开启,点击返回按钮时怎么获取这个状态?

在service中弹出dialog的时候去检测悬浮窗是否开启,然后点击返回的时候怎么获取这个状态?
场景:一个用户在其它手机登录的时候,service会发一个状态给手机,告知这个用户在其它设备已经登录,但是在弹出窗口的时候悬浮窗没有开启,然后引导用户进行设置,返回的时候这个悬浮窗的状态怎么获取?

Wrong sentence structure used.

The first line of this repository is written as, "this repository is aimed to adapt android float window permission in most of phone models and how to request it at runtime"
This sentence is written in passive voice and should be written in active voice as per the grammatical guidelines of writing.
Secondly, the first letter of the sentence should be upper case letter.
Thirdly, the superlative degree should be used with 'the'.
So, the corrected sentence could be written as:
"This repository aims to adapt android float window permission in most of the phone models and how to request it at runtime."
Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.