ADB命令行启动活动权限
问题描述:
我试图使用使用命令行亚行的意图,触发活动:ADB命令行启动活动权限
adb shell am start
-a android.intent.action.VIEW
-c android.intent.category.DEFAULT
-t vnd.google.android.package/vnd.google.android.package_something
-n com.google.android.package/com.google.android.apps.package.SomeActivity
,但它会引发安全异常:
Starting: Intent { act=android.intent.action.VIEW cat=[android.intent.category.DEFAULT] typ=vnd.google.android.package/vnd.google.android.package_something cmp=com.google.android.package/com.google.android.apps.package.SomeActivity }
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.VIEW cat=[android.intent.category.DEFAULT] typ=vnd.google.android.package/vnd.google.android.package_something flg=0x10000000 cmp=com.google.android.package/com.google.android.apps.package.SomeActivity } from null (pid=31536, uid=2000) requires com.google.android.package.START_ACTIVITY
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2767)
at com.android.commands.am.Am.runStart(Am.java:885)
at com.android.commands.am.Am.onRun(Am.java:361)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:101)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
所以我与具有缺少许可的用户再次尝试:
adb shell am start
-a android.intent.action.VIEW -c android.intent.category.DEFAULT
-t vnd.google.android.package/vnd.google.android.package_something
-n com.google.android.package/com.google.android.apps.package.SomeActivity
--user 10088
但它说,该活动不存在exis t:
Starting: Intent { act=android.intent.action.VIEW cat= [android.intent.category.DEFAULT] typ=vnd.google.android.package/vnd.google.android.package_something cmp=com.google.android.package/com.google.android.apps.package.SomeActivity }
Error type 3
Error: Activity class {com.google.android.package/com.google.android.apps.package.SomeActivity} does not exist.
我是否正确使用用户参数?我是否需要包含更多信息?
答
你应该使用下面的语法开始的活动:
adb shell am start
-n com.google.android.package/.SomeActivity
在你的情况与用户权限:
adb shell am start
-n com.google.android.package/.SomeActivity
--user 10088