2012-04-02 13 views
0

Ich bin auf der Suche nach einer synchronen Möglichkeit zur Überprüfung der Anzahl der aktiven Anrufe auf Android.Wie erkennen Sie die Anzahl der laufenden Anrufe auf Android

Bei der Suche nach Google erwähnen die Leute die TelephonyManager viel, aber die einzige Methode, die ich für diesen Zweck sehe, ist getCallState, die nur den aktuellen Anrufzustand zurückzukehren scheint. Ich nehme an, dies ist für den aktiven Anruf. Andere verwenden, die ich gefunden habe, ist über das Anhängen eines Zuhörers und dann warten und zählen.

Das ist nicht gut für mich, da ich auf Phonegap bin und nur eine Methode möchte, die ich anrufen kann, die mir einen Überblick über die aktuellen Anrufe gibt. Beachten Sie, dass ich wissen möchte, ob mehr als ein Anruf aktiv ist. Für einmal sieht es aus wie das iPhone ios api genau das in currentCalls Methode hat.

Es ist schwer für mich zu glauben, dass Android keine solche Methode hat. Ich kann es einfach nicht finden.

Jeder? Vielen Dank!

+0

http://developer.android.com/reference/android/telephony/TelephonyManager.html#listen%28android.telephony.PhoneStateListener,%20int%29 – Selvin

Antwort

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

Danke für die Antwort Hiren. Leider kann es mir nicht sagen, ob mehrere Anrufe gleichzeitig aktiv sind. Das ist das Wichtigste, was ich bei diesem Test wissen muss. Es scheint, dass Android mir nur den Zustand des aktiven Telefonanrufs (die Person, die ich spricht) sagt, aber nichts über die 10 Personen sagt, die ich möglicherweise in der Warteschleife habe. Wie ich Ihre Antwort verstehe, wird mir dieser Code mitteilen, wenn sich der Status des aktiven Anrufs ändert, aber immer noch nichts über die verbleibenden Anrufe? – Parbst

Verwandte Themen