How to launch Android built in apps

I’m using the following app package and activity to launch playstore. Why does it not launch? do I have to switch views?> Where am I wrong?
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME,
MobilePlatform.ANDROID);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, “Android Device”);
cap.setCapability(MobileCapabilityType.BROWSER_NAME, “Chrome”);
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, “100”);
cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, “selendroid”);
cap.setCapability(MobileCapabilityType.APP, “Play Store”);
cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.vending ");
cap.setCapability(MobileCapabilityType.APP_ACTIVITY, “.AssetBrowserActivity”);

Have you instantiated the Android driver ? If not add the following line of code :

driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);

I did instantiate, I forgot to copy here.

I realized my app package was wrong. I gave the correct app package and it worked. Thank you.
So the following code launches play store
public void apptest1() throws Exception{
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, “Android Device”);
cap.setCapability(MobileCapabilityType.BROWSER_NAME, “Chrome”);
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, “100”);
cap.setCapability(MobileCapabilityType.APP_PACKAGE, “com.android.vending”);
cap.setCapability(MobileCapabilityType.APP_ACTIVITY, “com.android.vending.AssetBrowserActivity”);
AndroidDriver driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”),cap) ;

@Priya,

It is bit confusing to understand, whether you want to test Mobile browser testing or you are testing native app from your code.

If you want to test native app and if you know the apk file, follow below statements:

        File objFile=new File("APK FilePath");
        DesiredCapabilities capabilities=new DesiredCapabilities();
        capabilities.setCapability("deviceName", "Your device name");
        capabilities.setCapability("app", objFile.getAbsolutePath());
        try
       {
          driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
       }
catch(Exception e)
{
  e.printStactTrace();
}

If you want to test native app and if you know the app package and activity names, follow below statements:

    DesiredCapabilities capabilities=new DesiredCapabilities();
    capabilities.setCapability("deviceName", "Your device");
    capabilities.setCapability("appPackage", "Your package name");
    capabilities.setCapability("appActivity", "Activity Name");

If you want Mobile browser testing, then use below code:

     DesiredCapabilities capabilities = new DesiredCapabilities();
     capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"Testing");
     capabilities.setCapability(MobileCapabilityType.PLATFORM, "ANDROID");
     capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "BROWSER");
     driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

I am bit confused of your code because you included both mobile browser params and native app params.

I am hoping above code snippet helps.

Thanks,
Uday

1 Like

Hi @Priyap
did you solve the problem? I am also want to launch “Google settings” app on android with Appium. Could you please share your solution code? Thanks!

did you figure out how to launch google settings?

got it, I installed app info app to get package name and activity name.
e.g. this is for google settings app.

desired_caps = dict()
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '6.0'
        desired_caps['deviceName'] = 'Android Emulator'
        desired_caps['appActivity'] = 'com.google.android.gms.app.settings.GoogleSettingsActivity'
        desired_caps['appPackage'] =  'com.google.android.gms'
        desired_caps['newCommandTimeout'] = 1000
        self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

I’m using appium java-client-4.0.0, my problem is when trying to write test code under TestNG, not found the any MobileCapabilityType.APP_XXXX (Ex: APP_PACKAGE, APP_ACTIVITY), what is the solution??