J'écris un TestCase automatisé en utilisant UiAutomator à travers les applications de mon application. Mon but est de trouver l'activité actuelle de toutes les applications sur lesquelles je clique.Obtenir l'instance d'activité d'une autre application à l'aide de UiAutomator?
J'ai appelé projet MyApp avec le paquet appelé com.example avec une activité, MainActivity
J'ai essayé le (tout à l'intérieur de mon application sous androidTest)
public class ActivityTester extends InstrumentationTestCase {
private UiDevice device;
@Test
public void testAdd() throws Exception {
}
@Override
protected void setUp() throws Exception {
super.setUp();
Instrumentation instrumentation = getInstrumentation();
Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor("com.example.MainActivity", null, false);
device = UiDevice.getInstance(instrumentation);
device.pressHome();
device.wait(Until.hasObject(By.desc("Apps")), 3000);
UiObject2 appsButton = device.findObject(By.desc("Apps"));
appsButton.click();
device.wait(Until.hasObject(By.text("MyApp")), 3000);
UiObject2 calculatorApp = device.findObject(By.text("MyApp"));
calculatorApp.click();
Activity currentActivity = instrumentation.waitForMonitorWithTimeout(monitor, 3000);
}
suivante ici Je suis en cliquant sur HomeMenu et lancer Myapp et attacher à l'écran avec com.example.MyActivity, je suis en mesure d'obtenir l'instance d'activité dans cette ligne de code
Activité CurrentActivity = instrumentation.waitForMonitorWithTimeout (moniteur, 3000);
Maintenant, si je change le flux. HomeMenu ->SomeOtherApp et de joindre au moniteur avec le launcherActivity pleinement qualifié de SomeOtherApp dire com.someotherapp.MainActivity. Je ne parviens pas à obtenir l'instance d'activité. currentActivity is null
Y a-t-il un moyen de trouver l'instance d'activité en cours de n'importe quelle application que je lance via UiAutomator?