diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index 01acadbda..23c6a0080 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -76,6 +76,7 @@ public class MobileCommand { protected static final String REPLACE_VALUE; protected static final String GET_SETTINGS; protected static final String SET_SETTINGS; + protected static final String GET_CURRENT_PACKAGE; public static final Map commandRepository; @@ -122,6 +123,7 @@ public class MobileCommand { REPLACE_VALUE = "replaceValue"; GET_SETTINGS = "getSettings"; SET_SETTINGS = "setSettings"; + GET_CURRENT_PACKAGE = "getCurrentPackage"; commandRepository = new HashMap<>(); commandRepository.put(RESET, postC("/session/:sessionId/appium/app/reset")); @@ -176,6 +178,7 @@ public class MobileCommand { postC("/session/:sessionId/appium/device/toggle_location_services")); commandRepository.put(UNLOCK, postC("/session/:sessionId/appium/device/unlock")); commandRepository. put(REPLACE_VALUE, postC("/session/:sessionId/appium/element/:id/replace_value")); + commandRepository.put(GET_CURRENT_PACKAGE,getC("/session/:sessionId/appium/device/current_package")); } /** diff --git a/src/main/java/io/appium/java_client/android/AndroidDriver.java b/src/main/java/io/appium/java_client/android/AndroidDriver.java index 7913ec52c..fec95da1b 100644 --- a/src/main/java/io/appium/java_client/android/AndroidDriver.java +++ b/src/main/java/io/appium/java_client/android/AndroidDriver.java @@ -180,4 +180,5 @@ public void openNotifications() { public void toggleLocationServices() { CommandExecutionHelper.execute(this, toggleLocationServicesCommand()); } + } diff --git a/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java b/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java index 55eae2f9d..181b971cc 100644 --- a/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java +++ b/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java @@ -46,6 +46,18 @@ public class AndroidMobileCommandHelper extends MobileCommand { CURRENT_ACTIVITY, ImmutableMap.of()); } + /** + * This method forms a {@link java.util.Map} of parameters for the + * getting of the current package. + * + * @return a key-value pair. The key is the command name. The value is a + * {@link java.util.Map} command arguments. + */ + public static Map.Entry> currentPackageCommand() { + return new AbstractMap.SimpleEntry<>( + GET_CURRENT_PACKAGE, ImmutableMap.of()); + } + /** * This method forms a {@link java.util.Map} of parameters for the * ending of the test coverage. diff --git a/src/main/java/io/appium/java_client/android/StartsActivity.java b/src/main/java/io/appium/java_client/android/StartsActivity.java index 05b31603c..873454dc1 100644 --- a/src/main/java/io/appium/java_client/android/StartsActivity.java +++ b/src/main/java/io/appium/java_client/android/StartsActivity.java @@ -17,6 +17,7 @@ package io.appium.java_client.android; import static io.appium.java_client.android.AndroidMobileCommandHelper.currentActivityCommand; +import static io.appium.java_client.android.AndroidMobileCommandHelper.currentPackageCommand; import static io.appium.java_client.android.AndroidMobileCommandHelper.startActivityCommand; import io.appium.java_client.CommandExecutionHelper; @@ -158,4 +159,13 @@ default void startActivity(String appPackage, String appActivity, String appWait default String currentActivity() { return CommandExecutionHelper.execute(this, currentActivityCommand()); } + + /** + * Get the current package being run on the mobile device. + * + * @return a current package being run on the mobile device. + */ + default String getCurrentPackage() { + return CommandExecutionHelper.execute(this, currentPackageCommand()); + } } diff --git a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java index 28d40bd39..2048b965d 100644 --- a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java @@ -183,4 +183,8 @@ public class AndroidDriverTest extends BaseAndroidTest { } + @Test public void getCurrentPackageTest() { + assertEquals("io.appium.android.apis",driver.getCurrentPackage()); + } + }