阻止Android的所有对话框,这意味着无论是应用程序还是Android系统都不会出现对话框,直到我的服务正在运行。有没有办法做到这一点编程?开始阻止服务中的对话框
6
A
回答
0
我不认为有可能阻止所有弹出窗口。
对我来说它是有道理的,Android不允许这样做。
但是,你可以尝试(如果你真的想:))使你的应用程序Accessibility Service这将弹出显示,并立即关闭它作出反应。要关闭弹出窗口,您可以在上面找到一些取消按钮并执行点击或performGlobalAction(GLOBAL_ACTION_BACK);
(如果它可取消)。
检查出一些代码在这里找到一个弹出:Android unable read window content on few devices using accessibility service(我不知道这是否会工作)
您还可以查看此获得关于如何取景一些更多的灵感和制作点击使用辅助服务的任何应用程序:Programmatically enabling/disabling accessibility settings on Android device
编辑:更多的细节
您需要按照这个标准教程添加SERVIC E要你的应用程序:https://developer.android.com/training/accessibility/service.html
首先要注意的是,你应该决定使用XML配置,包括android:canRetrieveWindowContent="true"
像在教程:
<accessibility-service
android:accessibilityEventTypes="typeViewClicked|typeViewFocused"
android:packageNames="com.example.android.myFirstApp, com.example.android.mySecondApp"
android:accessibilityFeedbackType="feedbackSpoken"
android:notificationTimeout="100"
android:settingsActivity="com.example.android.apis.accessibility.TestBackActivity"
android:canRetrieveWindowContent="true"
/>
,我想你不会需要行android:packageName
然后,你需要在实验回调方法应该发生什么 - 这里只是我粗略的建议:
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
AccessibilityNodeInfo source = event.getSource();
if(event.getEventType()==AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED)
if(isAlert(source)) //explore the view (maybe recursively) to find if there is an alert
performGlobalAction(GLOBAL_ACTION_BACK);
}
和递归方法可以像
private boolean isAlert(AccessibilityNodeInfo view){
int count = view.getChildCount();
boolean result = false;
for(int i=0; i<count; i++){
AccessibilityNodeInfo child = view.getChild(i);
if(child.getClassName().contains("Alert")){
return true;
}
if (explore(child));
result = true;
child.recycle();
return result;
}
相关问题
- 1. 阻止UAC对话框
- 2. Javascript中的模态阻止对话框
- 3. 打开jQuery对话框服务器端
- 4. Android开始/停止服务
- 5. 如何阻止QnAMaker对话框返回到父对话框?
- 6. 如何使用jQuery/UI的对话框阻止对话(“打开”)调用
- 7. 开始从对话框中的Android
- 8. jQuery UI模式对话框不阻止
- 9. 用对话框阻止Android线程
- 10. jQuery对话框阻止Firefox热键
- 11. 阻止JavaFX对话框关闭
- 12. 阻止对WCF服务的CSRF攻击
- 13. jQuery对话框在asp.net初始化对话框与服务器端调用
- 14. 开始,停止节点Express服务器
- 15. 远程检查/开始/停止服务
- 16. 从触发器开始对话框
- 17. 防止对话框阻止用户注销?
- 18. 如何停止gvim打开对话框?
- 19. jQuery对话框打开(不止一次)?
- 20. iptables阻止DNS服务器
- 21. Microsoft Azure阻止服务器?
- 22. 阻塞输入对话框
- 23. 中止在该对话框
- 24. ColdFusion服务不存在于服务对话框中
- 25. BlockUI花费太长的时间来阻止jQuery对话框
- 26. “阻止此页面创建其他对话框”的规则
- 27. 阻止Android对话框缩进文本的每个段落
- 28. 一旦开始,你如何阻止soundeffect?
- 29. 所有登录的会话上的Windows服务打开对话框
- 30. Windows服务始终“开始”
你能否提供一些样板/或帮助代码这样做,因为我不出来呢 –
OK,我只是快速添加一些代码,使我你的问题的想法。 – Tom
我仍然无法复制你的想法 –