How to handle android device notification for android app automation

How to handle android device notification for android app automation. Sometimes we need t

o allow or deny android device notifications while executing automation scripts, can anyone please tell me the procedure.

I have attached screenshot of mobile screen with notification.

@Ashu05may try:

driver.switchTo().alert().accept(); 

@Aleksei - Its not working.

Hi, do you tried to get allow button ID with uiautomatorviewer

@Ashu05may next try:


        WebElement allowButton = driver.findElement(MobileBy.id("com.android.packageinstaller:id/permission_allow_button"));
        new TouchAction((MobileDriver) driver).press(allowButton).waitAction(Duration.ofMillis(70)).release().perform();

allowButton.click();

Yes I am getting allow button id and tried clicking allow button but its not working

do you have appium log for click action?

logs which I am getting as below -

ADB] Attempting to kill all uiautomator processes
[ADB] Getting all processes with uiautomator
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“ps”]
[ADB] No uiautomator process found to kill, continuing…
[UiAutomator] Starting UIAutomator
[ADB] Creating ADB subprocess with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“uiautomator”,“runtest”,“AppiumBootstrap.jar”,"-c",“io.appium.android.bootstrap.Bootstrap”,"-e",“pkg”,“com.housejoy.consumer.activity”,"-e",“disableAndroidWatchers”,false,"-e",“acceptSslCerts”,false]
[UiAutomator] Moving to state ‘online’
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] json loading complete.
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Registered crash watchers.
[AndroidBootstrap] Android bootstrap socket is now connected
[ADB] Getting connected devices…
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Client connected
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”]
[AndroidDriver] Screen already unlocked, doing nothing
[ADB] Device API level: 23
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“am”,“start”,"-W","-n",“com.housejoy.consumer.activity/com.housejoy.consumer.activity.SplashScreenActivity”,"-S"]
[ADB] Waiting for activity matching pkg: ‘com.housejoy.consumer.activity’ and activity: ‘com.housejoy.consumer.activity.SplashScreenActivity’ to be focused
[ADB] Possible activities, to be checked: com.housejoy.consumer.activity.SplashScreenActivity, com.housejoy.consumer.activity.com.housejoy.consumer.activity.SplashScreenActivity
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
[ADB] Getting focused package and activity
[ADB] Getting connected devices…
[ADB] 1 device(s) connected
[ADB] Running ‘C:\Android\android-sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“13eb2e35”,“shell”,“dumpsys”,“window”,“windows”]
[ADB] Found package: ‘com.android.packageinstaller’ and fully qualified activity name : ‘com.android.packageinstaller.permission.ui.GrantPermissionsActivity’
[ADB] Incorrect package and activity. Retrying.
Appium server stopped successfully

Here I can see, pkg looks different so not sure It is trying to click or not.

@Ashu05may tried suggestion with “com.android.packageinstaller:id/permission_allow_button” tap? OR you have this screen on START driver and thus driver failed to start?

driver not run
you have error

[ADB] Incorrect package and activity.

test your capabilities

@Ashu05may if you want to test this on START update caps:

capabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.android.packageinstaller");
capabilities.setCapability(AndroidMobileCapabilityType.APP_WAIT_ACTIVITY, ".permission.ui.GrantPermissionsActivity");

it looks like activity name is wrong

We found a capability which has helped us.

Set an autoGrantPerrmisions capability to true

1 Like

Thank you very @igal_epshtein, its a nice way. it works.

@Ashu05may, can you please post your code snippet for the same. I am also facing similar problem as yours.

@amarKumar - please find code -

if(ScrRunInterface.equalsIgnoreCase(“realdevice”)){

		capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
		capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4.4");
		capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,"Appium");
		capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "ZX1B34GX78");
		capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
		capabilities.setCapability(MobileCapabilityType.NO_RESET, false);
        capabilities.setCapability("app-package", "com.abcd.consumer.activity");  
        capabilities.setCapability("app-activity", "com.abcd.consumer.activity.SplashScreenActivity");  
		capabilities.setCapability("autoGrantPermissions","true");  //this code you need to add
		
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
		driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        }
	}