Is it possible to start activity through adb shell?
AndroidAndroid Problem Overview
I want to start activity through adb shell. So that I can launch a specific activity that is needed
Android Solutions
Solution 1 - Android
Launch adb shell and enter the command as follows
am start -n yourpackagename/.activityname
Solution 2 - Android
eg:
MyPackageName is com.example.demo
MyActivityName is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
Solution 3 - Android
You can also find the name of the current on screen activity using
adb shell dumpsys window windows | grep 'mCurrentFocus'
Solution 4 - Android
I run it like AndroidStudio does:
am start -n "com.example.app.dev/com.example.app.phonebook.PhoneBookActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
If you have product flavour like dev
, it should occur only in application package name but shouldn't occur in activity package name.
For emulator, it works without android:exported="true"
flag on activity in AndroidManifest.xml
but I found it useful to add it for unrooted physical device to make it work.
Solution 5 - Android
adb shell am broadcast -a android.intent.action.xxx
Mention xxx as the action that you mentioned in the manifest file.
Solution 6 - Android
For example this will start XBMC:
adb shell am start -a android.intent.action.MAIN -n org.xbmc.xbmc/android.app.NativeActivity
(More general answers are already posted, but I missed a nice example here.)