2012-04-02 73 views
0

我正在尋找一種同步方式來檢查Android上活動的電話呼叫數。如何檢測Android上正在進行的呼叫數

當谷歌搜索,人們提到TelephonyManager很多,但我看到這個目的的唯一方法是getCallState這似乎只返回當前的通話狀態。我認爲這是用於積極的呼叫。其他人使用我發現的是附加一個聽衆,然後等待和計數。

這對我來說並不好,因爲我在phonegap上,只是想要一個我可以打電話的方法,它給我一個當前通話的概述。請注意,如果有多個呼叫處於活動狀態,我想知道。有一次,它看起來像iPhone ios api正好在currentCalls方法中。

我很難相信,Android沒有這樣的方法。我似乎無法找到它。

有人嗎?謝謝!

+0

http://developer.android.com/reference/android/telephony/TelephonyManager.html#listen%28android.telephony.PhoneStateListener,%20int%29 – Selvin 2012-04-02 15:09:43

回答

0
**AndroidManifest.xml**. 


<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.hiren.receiver.phone" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <application 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" > 
     <receiver android:name="MyPhoneReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.PHONE_STATE" > 
       </action> 
      </intent-filter> 
     </receiver> 
    </application> 

    <uses-sdk android:minSdkVersion="9" /> 

    <uses-permission android:name="android.permission.READ_PHONE_STATE" > 
    </uses-permission> 

</manifest> 

****Create the MyPhoneReceiver class.**** 

package com.hiren.receiver.phone; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.TelephonyManager; 
import android.util.Log; 

public class MyPhoneReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Bundle extras = intent.getExtras(); 
     if (extras != null) { 
      String state = extras.getString(TelephonyManager.EXTRA_STATE); 
      Log.w("DEBUG", state); 
      if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
       String phoneNumber = extras 
         .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
       Log.w("DEBUG", phoneNumber); 
      } 
     } 
    } 
} 
+0

感謝您的回答了Hiren。不幸的是,它不能告訴我,如果一次有多個活動電話,這是我用這個檢查需要知道的主要事情。看起來android只會告訴我正在進行的電話(即時通話的人)的狀態,但沒有提到我可能被擱置的10個人。根據我的理解你的答案,該代碼會告訴我何時活動通話的狀態發生了變化,但對於其餘的通話還是一無所知? – Parbst 2012-04-04 12:26:01