Neither user 10056 nor current process has android.permission.MODIFY_PHONE_STATE
10,156
Solution 1
Remove this line and your code should work:
telephonyService.silenceRinger();
That is an invalid call after Android 2.2.
Solution 2
Have you tried like bellow ?
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:1231231234"));
startActivity(intent);
Solution 3
MODIFY_PHONE_STATE permission used by system apps only not by third party apps.
Instead of using answerRingingCall(), u can use key events Like:
Intent buttonDown = new Intent(Intent.ACTION_MEDIA_BUTTON);
buttonDown.putExtra(Intent.EXTRA_KEY_EVENT,
new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
context.sendOrderedBroadcast(buttonDown, "android.permission.CALL_PRIVILEGED");
Related videos on Youtube
Comments
-
Juned about 1 year
I want to create such an application in which i want to open a dialer with specified number during call.
I have successfully opened the dialer during a call with refrence of this LINK but not able to dial the number, and another issue is that code is not working above Android 2.2. is there any other way to make this working in all devices.
Code :
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); Class c = Class.forName(tm.getClass().getName()); Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true); ITelephony telephonyService; telephonyService = (ITelephony)m.invoke(tm); // Silence the ringer and answer the call! telephonyService.silenceRinger(); telephonyService.answerRingingCall(); telephonyService.showCallScreen(); telephonyService.showCallScreenWithDialpad(true);
ERROR LOG:
01-09 17:35:41.065: W/Resources(367): Converting to string: TypedValue{t=0x10/d=0x2 a=-1} 01-09 17:38:23.446: W/System.err(367): java.lang.SecurityException: Neither user 10056 nor current process has android.permission.MODIFY_PHONE_STATE. 01-09 17:38:23.446: W/System.err(367): at android.os.Parcel.readException(Parcel.java:1322) 01-09 17:38:23.446: W/System.err(367): at android.os.Parcel.readException(Parcel.java:1276) 01-09 17:38:23.446: W/System.err(367): at com.android.internal.telephony.ITelephony$Stub$Proxy.silenceRinger(ITelephony.java:549) 01-09 17:38:23.446: W/System.err(367): at com.everysoft.autoanswer.AutoAnswerIntentService.answerPhoneAidl(AutoAnswerIntentService.java:137) 01-09 17:38:23.446: W/System.err(367): at com.everysoft.autoanswer.AutoAnswerIntentService.onHandleIntent(AutoAnswerIntentService.java:94) 01-09 17:38:23.446: W/System.err(367): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59) 01-09 17:38:23.446: W/System.err(367): at android.os.Handler.dispatchMessage(Handler.java:99) 01-09 17:38:23.446: W/System.err(367): at android.os.Looper.loop(Looper.java:123) 01-09 17:38:23.446: W/System.err(367): at android.os.HandlerThread.run(HandlerThread.java:60)
Manifest.xml
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
EDIT
I am able to auto answer the call in all devices but having problem with opening a dialpad only.
-
Juned over 10 yearsI am able to answer the call in all devices but having problem with opening a dialpad only.
-
PsyGik over 10 yearsPlease check this Link.
MODIFY_PHONE_STATE
cannot be used by 3rd party apps. -
Juned over 10 yearsit will place new call
-
CR Sardar over 10 yearsthen what is ur requirement?
-
Juned over 10 yearswant to send DTMF during call
-
CR Sardar over 10 yearsAs per my knowdedge u r not allowed to do that. What u r trying to do in above code is short of hacking not a standard way to do.
-
Juned over 10 yearsI want develop feature like callback, so what will be the exact process to do that? or its not possible in Android ?
-
Vineesh TP about 7 years@user543: Not working, is there any other solution for accept call
-
Antroid almost 6 yearsMODIFY_PHONE_STATE is a private permission only available for System Apps