我想通过 adb shell 启动活动,这样我就可以启动需要的特定活动
启动 adb shell 并按如下方式输入命令
am start -n yourpackagename/.activityname
adb shell am broadcast -a android.intent.action.xxx
将 xxx 作为您在清单文件中提到的操作。
例如,这将启动 XBMC:
adb shell am start -a android.intent.action.MAIN -n org.xbmc.xbmc/android.app.NativeActivity
(更多的一般性答案已经发布,但我错过了一个很好的例子。)
还可以使用以下命令查找屏幕上当前活动的名称
adb shell dumpsys window windows | grep 'mCurrentFocus'
例如:
MyPackageName 是 com.example.demo
MyActivityName 是 com.example.test. MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
我像 AndroidStudio 一样运行它:
am start -n "com.example.app.dev/com.example.app.phonebook.PhoneBookActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
如果产品风味像 dev一样 ,应该只出现在应用程序包名称中,而不应该出现在活动包名称中。
dev
对于模拟器,它在 AndroidManifest.xml中的活动中不使用 android:exported="true"标志,但是我发现将它添加到非根物理设备中以使其工作是有用的。
AndroidManifest.xml
android:exported="true"