【发布时间】:2014-01-09 12:14:57
【问题描述】:
我想创建这样一个应用程序,我想在通话过程中打开一个指定号码的拨号器。
我在通话过程中成功打开了拨号器,使用此LINK,但无法拨打该号码,另一个问题是该代码在 Android 2.2 上无法正常工作。有没有其他方法可以使它在所有设备上工作。
代码:
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);
错误日志:
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" />
编辑
我可以在所有设备上自动接听电话,但只能打开拨号盘。
【问题讨论】:
-
请您告诉我如何以编程方式接听电话,我希望它以编程方式接听,但我不知道该怎么做
标签: android phone-call telephonymanager