相关疑难解决方法(0)

一种在android中管理USSD对话框的新方法

几天来,我一直在这里和其他论坛上阅读有关USSD对话的线索.(USSD表示运营商的通知,其中包含通话费用详情).

我已经看到很多解决方案显然适用于Android中较低的API级别,但经过大量的测试,认为它们不再工作或者至少我无法让它们工作.

首先,我想知道是否有任何方法可以检测是否已向用户显示ussd对话框.所以我试过这个: 阻止USSD对话并阅读USSD回复?

但我从日志中获得的所有东西都与我的应用程序有关,虽然我可以在Eclipse的LogCat中看到它们,但我的应用程序中没有捕获到MMI相关的日志!也许它的工作版本低于我的Android版本(4.2.2).

然后我决定使用"IExtendedNetworkService",就像它在以下链接中使用的那样:

https://github.com/alaasalman/ussdinterceptor

使用IExtendedNetworkService在Android中获取USSD响应

如何在android中阅读USSD消息?

实施USSD功能.将服务绑定到PhoneUtils,而不是在每次更新时重新启动手机

但它对Android 4.2.2及更高版本也没用.

然后我找到了这个链接: 如何解除Android中的系统对话框?

它似乎很有希望,但即使经过大量的测试,我也无法使它工作.我想也许我做错了什么,或者也是为了降低API.

之后我尝试了许多其他的东西,比如模拟主键和后退键,甚至以编程方式触摸隐藏该通知,但由于它们都在我自己的活动下工作,所以没有一个工作.

有谁知道这些方法或其他方法是否适用于管理甚至检测Android 4.2.2及更高版本中的USSD消息?

我非常感谢任何帮助,提前谢谢.

android ussd

31
推荐指数
2
解决办法
8428
查看次数

阻止/禁用最近的应用按钮

我知道这个问题在此之前被问过Android禁用最近的任务按钮,就像在SureLock中一样,但由于答案没有用,所以也许有些人可以分享这个被遗忘的事情.

我也尝试过:

private void closeRecents() {
     activ.sendBroadcast(new Intent("com.android.systemui.recent.action.CLOSE"));
     Intent closeRecents = new Intent("com.android.systemui.recent.action.TOGGLE_RECENTS");
     closeRecents.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
     ComponentName recents = new ComponentName(SYSTEM_UI_PACKAGE_NAME, RECENTS_ACTIVITY);
     closeRecents.setComponent(recents);
     activ.startActivity(closeRecents);
}
Run Code Online (Sandbox Code Playgroud)

但没有运气

android android-navigation

13
推荐指数
2
解决办法
4万
查看次数

Android测试:等待视图层次结构的根具有窗口焦点

在Android Ui测试中,我想在对话框中单击一个微调项目,但它会弹出以下错误:

va.lang.RuntimeException: Waited for the root of the view hierarchy to have window focus and not be requesting layout for over 10 seconds. If you specified a non default root matcher, it may be picking a root that never takes focus. Otherwise, something is seriously wrong. Selected Root:
Root{application-window-token=android.view.ViewRootImpl$W@2dac97c7, window-token=android.view.ViewRootImpl$W@2dac97c7, has-window-focus=false, layout-params-type=1, layout-params-string=WM.LayoutParams{(0,0)(fillxfill) sim=#10 ty=1 fl=#81810100 pfl=0x8 wanim=0x1030461 surfaceInsets=Rect(0, 0 - 0, 0) mwfl=0x0}, decor-view-string=MultiPhoneDecorView{id=-1, visibility=VISIBLE, width=1600, height=2560, has-focus=true, has-focusable=true, has-window-focus=false, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, …
Run Code Online (Sandbox Code Playgroud)

android automated-tests android-espresso android-uiautomator

10
推荐指数
3
解决办法
5912
查看次数

如何以编程方式关闭/取消/关闭系统对话框(Android)

我有一个应用程序可以进行USSD调用,但在所有USSD调用之后,我得到了一个结果对话框的对话框.

我知道可以关闭此对话框,因为"USSD Checker"应用程序执行此操作,他们从USSD获得响应而不显示用户对话框.

手机utils类中

具有displayMMIComplete完成Ussd调用后显示TYPE_SYSTEM_DIALOG的功能.在PhoneUtils.java中,他们使用如下对话框:

AlertDialog newDialog = new AlertDialog.Builder(context)
                    .setMessage(text)
                    .setPositiveButton(R.string.ok, null)
                    .setCancelable(true)
                    .create();
newDialog.getWindow().setType(
                    WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
newDialog.getWindow().addFlags(
                    WindowManager.LayoutParams.FLAG_DIM_BEHIND);
newDialog.show();
Run Code Online (Sandbox Code Playgroud)

然后我不能只发一些旗帜来解雇它.我不能使用导入它的系统类.

而当我做X连续调用出现X对话框给用户关闭,而我的应用程序将需要连续调用,无论如何以编程方式关闭此系统对话框?

android dialog

9
推荐指数
2
解决办法
9665
查看次数

Android无法使用辅助功能服务在少数设备上阅读窗口内容

我的要求:从特定应用的弹出窗口,对话框等中读取文本.

我已经实现了一个辅助功能服务,我按照我的要求接收了适当的事件和数据.然而,在测试时,我意识到在某些设备上而不是使用AlertDialog或Dialog,他们使用了一个活动(主题为对话框).因此,在我的辅助功能事件中,我只收到活动标题,是否有一种方法可以找到此特定弹出活动显示的文本?

我搜索得非常努力,但在这个主题上得不到多少帮助,文档也没有任何好处.可访问性服务的代码并不多,但如果您仍然需要,我会稍后发布.

谢谢

android accessibility-api accessibilityservice

5
推荐指数
1
解决办法
4542
查看次数