2

我使用以下代码拨打了一个号码:

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 之外我找不到任何关于这个概念的东西,这不是我真正想要的。

4

1 回答 1

1

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

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

于 2012-07-10T19:35:47.673 回答