您的位置:首页 > 运维架构 > Shell

adb shell am局限性

2015-07-09 15:14 567 查看
使用adb启动activity可以用如下方法:
adb shell amstart -n <package_name>/<activity_class_name>

package_name为包名,activity_class_name为类名,举例子如下
am start -ncom.example.fish.test/com.recycling.imageview.SingleImageViewActivity

但是这个方法有局限性,只能启动入口activity,什么是入口activity,activity的action必须是actionandroid.intent.action.MAIN,如果不是的话,调用此命令会出错,出错如下
Starting: Intent{ cmp=com.example.fish.test/com.recycling.imageview.MutiImageVi
ewActivity }
java.lang.SecurityException:Permission Denial: starting Intent { flg=0x10000000
cmp=com.example.fish.test/com.recycling.imageview.MutiImageViewActivity} from
null (pid=21517,uid=2000) not exported from uid 10210
atandroid.os.Parcel.readException(Parcel.java:1465)
atandroid.os.Parcel.readException(Parcel.java:1419)
atandroid.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerN
ative.java:2278)
atcom.android.commands.am.Am.runStart(Am.java:680)
atcom.android.commands.am.Am.onRun(Am.java:270)
atcom.android.internal.os.BaseCommand.run(BaseCommand.java:47)
atcom.android.commands.am.Am.main(Am.java:76)
atcom.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
atcom.android.internal.os.RuntimeInit.main(RuntimeInit.java:247)
atdalvik.system.NativeStart.main(Native Method)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: