Launch App via adb without knowing Activity name [duplicate]
From the post Is it possible to start activity through adb shell?, we can start an Android app via adb by
adb shell am start -n yourpackagename/.activityname
But is it possible to start an Android app via adb without knowing the Activity name? For example, by sending the android.intent.action.MAIN intent to a package? Maybe some command like this:
adb shell am start -a android.intent.action.MAIN -n packageName
Thanks!!
-Cosmo
Solution 1:
Yes, it is possible to launch an app via adb shell making use of the monkey tool.
Using the command from this answer:
adb shell monkey -p app.package.name -c android.intent.category.LAUNCHER 1
This command simulates the app icon click, so the intent implicit intent LAUNCHER is delivered to the specific receiver declared in app manifest (MAIN)
Solution 2:
Using latest versions (at least API 25) you can start the default Activity, without knowing its name, and not using monkey
:
PKG=com.android.calculator2
adb shell am start $PKG/$(adb shell cmd package resolve-activity -c android.intent.category.LAUNCHER $PKG | sed -n '/name=/s/^.*name=//p')