tags:

views:

493

answers:

2

This used to work:

adb shell am start -a android.intent.action.CALL tel:1234

However, now I get this error:

09-08 14:35:57.821 W/dalvikvm( 1107): threadid=3: thread exiting with uncaught exception (group=0x4001b200)
09-08 14:35:57.841 E/AndroidRuntime( 1107): Uncaught handler: thread main exiting due to uncaught exception
09-08 14:35:57.841 E/AndroidRuntime( 1107): *** EXCEPTION IN SYSTEM PROCESS.  System will crash.
09-08 14:35:57.871 E/AndroidRuntime( 1107): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:1234 flg=0x10000000 cmp=com.android.phone/.OutgoingCallBroadcaster } from null (pid=-1, uid=-1) requires android.permission.CALL_PHONE
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at android.os.Parcel.readException(Parcel.java:1218)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at android.os.Parcel.readException(Parcel.java:1206)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1149)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at com.android.commands.am.Am.runStart(Am.java:202)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at com.android.commands.am.Am.run(Am.java:76)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at com.android.commands.am.Am.main(Am.java:54)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at com.android.internal.os.RuntimeInit.finishInit(Native Method)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:186)
09-08 14:35:57.871 E/AndroidRuntime( 1107):     at dalvik.system.NativeStart.main(Native Method)
09-08 14:35:57.911 E/JavaBinder( 1107): Unknown binder error code. 0xfffffff7
09-08 14:35:57.921 E/AndroidRuntime( 1107): Crash logging skipped, no checkin service
09-08 14:35:57.921 I/Process ( 1107): Sending signal. PID: 1107 SIG: 9

Is there a workaround for this?

+1  A: 

That seems right - I don't know why it worked before, but Android is working how it should - the adb shell does not have permission to call (android.permission.CALL_PHONE). You might be able to circumvent this by running am as root (if you have root permissions on your phone): just execute su before executing the command.

Isaac Waller
Running the command as root (with su) didn't work.
Naseer
+1  A: 

I was finally able to complete what I wanted using the adb service command (http://davanum.wordpress.com/2007/12/12/android-calldial-from-the-adb-shell-command-line/)

Naseer