我知道如何更新我自己的程序,我知道如何使用预定义的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) 我找到了几个用于通过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
任何人都可以帮助我了解如何cd目录,如:
cd C:\Program Files\Flowella
Run Code Online (Sandbox Code Playgroud)
然后在该目录上运行其他命令?
我正在开发一种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
你好我正在研究一个Android应用程序,它需要通过wifi发送一个字符串到PC导致模拟键盘按键.任何想法如何我可以实现这个任务?
在文档中它说的是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)