I want to start activity through adb shell. So that I can launch a specific activity that is needed
This question is related to
android
adb shell am broadcast -a android.intent.action.xxx
Mention xxx as the action that you mentioned in the manifest file.
You can also find the name of the current on screen activity using
adb shell dumpsys window windows | grep 'mCurrentFocus'
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.)
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.
eg:
MyPackageName is com.example.demo
MyActivityName is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
Source: Stackoverflow.com