【发布时间】:2017-08-24 21:04:15
【问题描述】:
我正在尝试实现自己的电话处理 UI。
我想做的是,如果有来电,显示来电号码和图片,如果我按下按钮,来电将被接听/接听。
相关代码为:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
answerButton = (Button) findViewById(R.id.pickup);
answerButton.setOnClickListener(new OnClickListener() {
public void onClick(final View v) {
Intent intent = new Intent("android.intent.action.ANSWER");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
很遗憾,代码不起作用。起初,如果我按下我的回答按钮,则会引发异常:
ActivityNotFoundException:未找到处理 Intent 的 Activity {
act=android.intent.action.ANSWER
然后我在 AndroidManifest.xml 中添加了一个条目:
<uses-permission android:name="android.permission.CALL_PHONE" />
我再次运行应用程序,不再有异常。但是,我怀疑来电并没有真正被接受。因为如果按下安卓的屏幕接听按钮(绿色按钮),来电被接受,并且模拟器屏幕的左上角也会显示一个绿色的通话中图标,而我的应用程序没有。
我还阅读了 Android 源代码中的 Phone 应用程序源代码。 Phone类中有acceptCall()等方法。但是这些代码对我来说似乎很难使用,因为代码中有很多导入声明,例如:
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.CallerInfoAsyncQuery;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.MmiCode;
import com.android.internal.telephony.Phone;
而且,如果我在我的代码中添加这些导入,将会出现太多错误,例如:The import com.android.internal.telephony cannot be resolved。
解决我的问题的正确和简单的方法是什么?
【问题讨论】:
标签: android phone-call