相关疑难解决方法(0)

从你自己打开另一个应用程序(意图)

我知道如何更新我自己的程序,我知道如何使用预定义的Uri打开程序(例如短信或电子邮件)

我需要知道如何创建一个Intent来打开MyTracks或任何其他我不知道他们听什么意图的应用程序.

我从DDMS那里获得了这些信息,但我没有成功将其转化为我可以使用的Intent.这是在手动打开MyTracks时获取的.

谢谢你的帮助

05-06 11:22:24.945: INFO/ActivityManager(76): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks bnds=[243,338][317,417] }
05-06 11:22:25.005: INFO/ActivityManager(76): Start proc com.google.android.maps.mytracks for activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: pid=1176 uid=10063 gids={3003, 1015}
05-06 11:22:26.995: INFO/ActivityManager(76): Displayed activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: 1996 ms (total 1996 ms)
Run Code Online (Sandbox Code Playgroud)

android android-intent

134
推荐指数
8
解决办法
23万
查看次数

通过Java运行cmd命令

我找到了几个用于通过Java类运行cmd命令的代码片段,但我无法理解它.

这是打开cmd的代码

public void excCommand(String new_dir){
    Runtime rt = Runtime.getRuntime();
    try {
        rt.exec(new String[]{"cmd.exe","/c","start"});

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我找到了一些其他链接来添加其他命令,如cd http://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java

如何使用Java打开命令提示符并插入命令?

任何人都可以帮助我了解如何cd目录,如:

 cd C:\Program Files\Flowella
Run Code Online (Sandbox Code Playgroud)

然后在该目录上运行其他命令?

java cmd cd

50
推荐指数
4
解决办法
24万
查看次数

在app中运行仪器测试并等待结果

我正在开发一种QA自动化解决方案,可以在Android上记录/回放QA测试.关键业务要求是在回放录制的测试时不依赖于连接的PC.为此,我试图在没有连接PC的情况下运行仪器测试.(具体来说,是Appium UiAutomator2测试).

我目前的方法是尝试从我的应用程序以编程方式运行测试.如果我通常从连接的PC运行测试,我会使用该命令adb shell am instrument -w.我尝试从我的应用程序访问ADB Shell并运行am instrument -w,但这会产生错误,我错过了INTERACT_ACROSS_USERS_FULL权限.

为了解决这个问题,我尝试使用startInstrumentation运行测试.这成功地开始了测试.但是,测试立即崩溃.经过进一步调查,我将崩溃追踪到NPE:测试试图检索InstrumentationRegistry.getInstrumentation.getUiAutomation(0),但是返回null.

如何以编程方式运行测试并授予其访问所需的UiAutomation实例的权限?

这就是我开始测试的方式:

public void runTest() {
    final String pm = getPackageName().replaceFirst(".test$", "");
    final InstrumentationInfo info = getInstrumentationInfo(pm);
    if (info != null) {

        final ComponentName cn = new ComponentName(info.packageName,
                info.name);

        Bundle arguments = new Bundle();
        arguments.putString("class", "io.testim.appiumwrapper.test.AppiumUiAutomator2Server");
        //cn = {io.extension.test/android.support.test.runner.AndroidJUnitRunner}
        startInstrumentation(cn, null, arguments);

    } 
}
Run Code Online (Sandbox Code Playgroud)

android android-testing appium android-instrumentation appium-android

20
推荐指数
1
解决办法
788
查看次数

如何通过wifi将字符串从Android发送到PC

你好我正在研究一个Android应用程序,它需要通过wifi发送一个字符串到PC导致模拟键盘按键.任何想法如何我可以实现这个任务?

android onkeypress android-wifi

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

UiAutomation 与 AccessibilityService

文档中它说的是UiAutomation

用于通过模拟用户操作和自省屏幕内容与设备的 UI 进行交互的类。它依赖于平台辅助功能 API 来检查屏幕并在远程视图树上执行一些操作。它还允许注入任意原始输入事件,模拟用户与键盘和触摸设备的交互。人们可以将 UiAutomation 视为一种特殊类型的 AccessibilityService,它不提供服务生命周期的挂钩,并公开对 UI 测试自动化有用的其他 API。

此类公开的 API 是低级的,以便在开发 UI 测试自动化工具和库时最大限度地提高灵活性。一般来说,UiAutomation 客户端应该使用更高级别的库或实现高级功能。例如,在屏幕上执行点击需要构建和注入触摸向下和向上事件,这些事件必须通过调用injectInputEvent(android.view.InputEvent, boolean)传递到系统。

此类公开的 API 可以跨应用程序运行,使客户端能够编写涵盖跨多个应用程序的用例的测试。例如,转到设置应用程序以更改设置,然后与行为取决于该设置的另一个应用程序进行交互。

UiAutomation与常规的到底有什么不同,因为它在源代码AccessibilityService中没有继承它。

public final class UiAutomation {
    private static final String LOG_TAG = UiAutomation.class.getSimpleName();
    // omitted the rest...
Run Code Online (Sandbox Code Playgroud)

android android-source android-uiautomator

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