android-UCToast icon indicating copy to clipboard operation
android-UCToast copied to clipboard

UC浏览器还是请求了 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

Open TonyTangAndroid opened this issue 9 years ago • 1 comments

你好 Huqiu,

感谢你的这个Demo,我往我的 "AnyCopy"添加了类似的功能。这个App的主要作用就是可以自动保存你任何复制到粘贴板的文本内容,然后提供离线访问,即时搜索等。然后我添加了Undo的功能,因为有些用户可能不想保存某些内容。然而我发现,这个功能在大多数机器上运行的都正常,不要求android.permission.SYSTEM_ALERT_WINDOW权限,也能弹出内容。但是我发现Samsung S3 I9100 的崩溃率是100%。我觉得好奇。于是我下载了genymotion 然后创建了一个Samsung S3 I9100模拟器,再安装UC浏览器,我想通过验证UC浏览器是否正常工作,来确定是我自己集成的方法有问题,还是这个本身就是因为Samsung做了特殊的修改,所以不行。

结果我发现UC浏览器居然能够正常弹出悬浮窗。这让我很是吃惊。我不认为我的代码集成的有问题。于是,我又把UC浏览器请求的权限在手机里过滤了一遍,而且手机的确没有说它请求了android.permission.SYSTEM_ALERT_WINDOW的权限,但是在模拟器里却显示请求了这个权限。

(这个解释可能可以归类为Android 6.0权限重构了,所以不再显示了?)

为了再次确认,我翻译了 UC 的源代码,发现事实上它还是的确继续 请求了 android.permission.SYSTEM_ALERT_WINDOW 这个权限。否则的话,无法保证所有的机器都会运行成功。

所以目前的结论是 在原生Android系统里,可以使用这个方法来规避这个权限,但是很可能某些系统就会有各种坑。

TonyTangAndroid avatar Nov 14 '15 20:11 TonyTangAndroid

没错,这个并不算没有权限,需要android.permission.SYSTEM_ALERT_WINDOW 这个权限,否则也会闪退

yinglovezhuzhu avatar Feb 23 '17 08:02 yinglovezhuzhu