¿Es posible iniciar la actividad a través de shell de adb?
Quiero iniciar la actividad a través de shell de adb. Para que yo pueda lanzar una actividad específica que se necesita
Inicie shell de adb e ingrese el comando como sigue
am start -n yourpackagename/.activityname
adb shell am broadcast -a android.intent.action.xxx
Mencione xxx como la acción que mencionó en el archivo de manifiesto.
Por ejemplo esto iniciará XBMC:
adb shell am start -a android.intent.action.MAIN -n org.xbmc.xbmc/android.app.NativeActivity
(Las respuestas más generales ya están publicadas, pero me perdí un buen ejemplo aquí.)
Lo ejecuto como AndroidStudio hace:
am start -n "com.example.app.dev/com.example.app.phonebook.PhoneBookActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Si tiene sabor de producto como dev
, debería aparecer sólo en el nombre del paquete de aplicación, pero no debería aparecer en el nombre del paquete de actividad.
Para el emulador, funciona sin android:exported="true"
bandera en la actividad en AndroidManifest.xml
pero me pareció útil para añadirlo a unrooted dispositivo físico para que funcione.
p.ej:
MyPackageName es com.example.demo
MyActivityName es com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
(Añadiría esto como un comentario anterior pero no tiene suficiente reputación …) También puede encontrar el nombre de la actividad actual en la pantalla usando
adb shell dumpsys window windows | grep 'mCurrentFocus'