问题标签 [system-alert-window]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - SYSTEM_ALERT_WINDOW 的替代方案,用于显示跨应用活动的覆盖
要求是在应用程序中添加聊天功能,一旦启动,该功能将在最小化视图中的所有活动中可用 - 您可以在一个活动中开始聊天并在更改活动时保持活动状态。
解决方案 -> 使用此权限,并创建一个服务,以覆盖所有屏幕。
我们的要求有问题->
- 我们不需要一个对所有应用程序都可见的视图——一个只对我们的应用程序可见的视图。
- 使用上述解决方案需要用户对 API 级别 >=M 的运行时权限。
- 用户可以从设置中禁用此权限,并且覆盖将不起作用。</li>
有什么方法可以在不使用此权限和服务的情况下实现这一目标。
java - 当我单击位于顶视图活动中的按钮并且 MainActivity 未处于活动状态时,剪贴板返回 null
当我单击 Android java 中的按钮时,当 MainActivity 在顶视图活动中未处于活动状态时,剪贴板数据返回 null
我阅读了有关 android10 及更高版本的限制,但我的活动不是后台服务。当我单击位于顶视图活动(如 Google 翻译应用程序)中的按钮时,我需要获取剪贴板数据。就我而言,当 MainActivity 不活动时,剪贴板返回 null 。
https://developer.android.com/about/versions/10/privacy/changes#clipboard-data
javascript - 阻止来自 iframe/embed 的弹出窗口
我有很多 iframe,它们来自 spotify,我不断收到弹出窗口询问设备的内容,这将导致一个嵌入/iframe 在另一个停止时暂停。如何让所有 iframe 都不允许弹出窗口?这只是我所拥有的一小部分:
我的网站可以在这里找到:https ://50izac02.github.io/sb/music.html
android - 应用程序如何检测当前正在使用 SAW 权限?
背景
我已经多次注意到,当我使用使用 SAW(系统警报窗口,AKA“显示在其他应用程序上)权限的应用程序(此处示例)时,我打开 Chrome 网络浏览器并访问一些需要权限的网站(这里的例子,取自这里),它不会让我授予/拒绝权限:
问题
我找不到他们是如何做到的,以及可以从哪个 Android 版本进行检查。
我发现了什么
可悲的是,尽管我搜索了很多,但我实际上还有更多问题。
例如,为什么网络浏览器无法检测到哪个应用程序显示在顶部,并告诉我们禁用它?
或者,现在 Android 12 可能会到来,似乎有一个阻止 SAW 的新权限(这里):
Android S 中添加的 HIDE_OVERLAY_WINDOWS
public static final String HIDE_OVERLAY_WINDOWS 允许应用防止在其上绘制非系统覆盖窗口
常量值:“android.permission.HIDE_OVERLAY_WINDOWS”
也许对于这种情况,没有多少人问过它,或者由于某种原因,我没有选择正确的东西来寻找答案。
问题
如何在我显示某些内容时检测某些应用程序是否正在使用 SAW 权限?
有没有办法检测哪个应用程序这样做?
API 可以为此提供什么,从哪个版本可用?
我记得有人告诉我,可访问性可用于在顶部绘图。遗憾的是,我找不到有关如何执行此操作的教程以及此类应用程序的示例。这个 API 也能检测到它们吗?或者这不被视为SAW?我在哪里可以找到有关如何操作的教程,以便我可以查看它?
奖励:您如何在 Android S 上使用隐藏 SAW 的新权限?
android - 如何在 android 10 的辅助功能菜单上显示窗口覆盖?
我已经完成了一些代码,除了设置应用程序-> 辅助功能菜单或设备管理应用程序菜单外,其他地方都可以正常工作
我需要在设置-> 可访问性和设备管理应用程序菜单中显示覆盖
我有一个应用程序,我在其中看到这种类型的叠加层,您可以在下图看到
当我打开 ->设备管理应用程序-> 然后我的应用程序覆盖被隐藏但另一个应用程序覆盖仍然可见时,您可以看到上面的第二张图像我不知道为什么?
请大家帮我解决这个问题??
**AndridManifest.xml
MainActivity.kt
activity_main.xml
覆盖视图.xml
android - AccessibilityService 如何利用其他应用程序?
背景
SAW(系统警报窗口)权限可用于在其他应用程序之上绘制内容。
很久以前有人告诉我无障碍服务也可以做到这一点,但我从来没有找到任何教程、示例、文档甚至是可以做到这一点的应用程序......直到最近:
https://play.google.com/store/apps/details?id=com.github.ericytsang.screenfilter.app.android
事实上,这个应用程序似乎可以在任何地方绘制,而不是 SAW 许可。它甚至在设置应用程序和系统对话框的顶部绘制,而不允许 SAW 权限。
问题
可悲的是,由于可访问性是一种非常独特且很少使用的东西,就像我写的那样,我找不到这样的东西如何在其他应用程序之上绘图。
我发现了什么
我唯一知道的是这个应用程序以某种方式做到了,这就是它要求授予它时显示的内容:
但这还不够。我知道对于我使用无障碍服务所做的一些旧 POC,它显示相同,并且检查它,我看不出是什么触发了它。可以肯定的是,对于任何类型的可访问性服务,用户都会看到最少的东西,所以这无济于事。
问题
AccessibilityService 如何利用其他应用程序?
它与 SAW 许可的工作方式相同吗?例如,你能处理它绘制的触摸事件吗?
使用它有什么限制,如果有的话?
java - 不同的 android 设备在尝试显示浮动小部件时显示错误
我正在尝试显示一个浮动小部件
但是当我在两台小米红米设备上运行该应用程序时收到此错误消息
所以我在 SO 上搜索并想出了下面的解决方案并且它有效
但现在它在我试过的其他手机上显示这条消息,比如三星和vivo
如果我这样做,效果很好
如果我将WindowManager.LayoutParams.TYPE_PHONE,
它设置在三星和vivo上,天知道在哪些手机上,但它不适用于红米手机
如果设置WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
它,它适用于红米手机而不是其他手机。
任何建议请这里的任何东西都是完整的代码
android - Android 自动授予系统警报窗口
我正在创建一个需要系统警报窗口权限的应用程序,根据此答案,为了通过 Play 商店自动授予此权限,我必须通过电子邮件向谷歌发送电子邮件,让他们查看我的应用程序并授予权限,但是,此答案来自最后年,任何人都可以验证它仍然适用吗?这是否意味着用户不需要打开设置并授予权限,它会被google play自动授予?
android - 如何在不使用 WindowManger 的情况下将视图放置在其他视图之上?
语境:
我的 android 库需要动态地将视图放置在其他目标视图之上。目前我正在WindowManager
为此目的使用。我有viewId
目标视图并获取视图的位置坐标。现在我简单地使用windowManager.addView()
. 这里面临的问题是WindowManager
需要SYSTEM_ALERT_WINDOW
我们想要避免的许可。
我也尝试过getWindow().getDecorView().findViewById(android.R.id.content).addView(imageView)
,这样我就不必使用 WindowManger,但它会导致不同手机的对齐问题。关于我们如何避免使用 WindowManager 并同时实现我们的目的的任何帮助?
替代解决方案:我最近阅读了这个stackoverflow 答案,它说如果从 Playstore 安装,则不会询问权限。所以我在 Playstore 上启动了我的应用程序,但它仍然在运行时请求许可。我也填写了这张表格。
编辑: