android - 如何查询所拨号码是否占线或无人接听?

标签 android phone-call telephony telephonymanager

我已经使用下面的代码调用了一个号码:

DataBaseHelper db;
db=new DataBaseHelper(PanicService.this);
try {

    db.createDataBase();

    } catch (IOException ioe) {

    throw new Error("Unable to create database");

    }

Map<String, String > map= db.TelephoneList();
String[] numbers = new String[]{"number1","number2","number3","number4","number5"};


Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+map.get(numbers[0])));
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(callIntent);

工作正常。 现在我需要知道所拨号码是占线还是无人接听,是拨列表中的下一个号码。我只是想知道是否有检测通话状态的方法?

我已经检查了这个 URL http://developer.android.com/reference/android/telephony/TelephonyManager.html但除了 CALL_STATE_OFFHOOK 这不是我真正想要的,我找不到任何关于这个概念的东西。

最佳答案

您无法确定移动网络上的拨出电话是否已接听,因为移动网络不会向手机提供此信息,即使提供,Android 也不提供接收它的方法。

虽然可以确定拨出的 Internet (SIP) 调用是否得到应答,但 Android 目前(从 Jelly Bean 开始)不提供执行此操作的方法,我可以通过快速查看源代码找到该方法。

关于android - 如何查询所拨号码是否占线或无人接听?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416374/

相关文章:

java - 如何让Viewholder RecyclerViewAdapterAdapter中的OnClick调用Activity的函数

java - 如何从静态类获取 SharedPreferences 值

android - Android 设备上的假来电

iphone - 在应用程序中计算通话分钟数(iOS)

android - 如何在 telephonymanager android 中读取 cellInfo 中的数据

speech-recognition - 使用 Twilio 之类的语音 + 电话 API(文本到语音和语音到文本)以编程方式通过电话接受信用卡?

android createTempFile 抛出权限被拒绝?

android - webview应该拦截请求示例

android - 以编程方式自动接听来电?

android - 如何向可点击的电话号码发送短信,包括安卓消息的扩展