必须从Looper线程调用PhoneFactory.getDefaultPhone

时间:2012-08-18 01:48:07

标签: android voicemail

我在TwelveKeyDialer.java中的PhoneFactory.getDefaultPhone()函数中调用callVoicemail(),然后我按照标题描述获得此日志消息,并且12KeyDialer应用程序崩溃,这是怎么发生的?我怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

您正在从主线程以外的线程调用PhoneFactory.getDefaultPhone()。您需要从调用Looper.prepare()的线程中调用它。

最简单的方法是从UI线程调用它。使用RunonUithread

答案 1 :(得分:0)

您是否在PhoneFactory.makeDefaultPhone(getApplicationContext())之前致电PhoneFactory.getDefaultPhone()了?

根据我的经验,你可以在Activity创建方法中调用它。

如果您需要更改手机,则需要添加MODIFY_PHONE_STATE权限并使用系统密钥对应用程序进行签名。您需要使用android:sharedUserId =“android.uid.system”清单标签。

Shlomo Kut