2010-01-20 22 views
5

Benim Sorgusu, Giden bir çağrı yaparken diğer taraftaki alıcının çağrıyı alması durumunda bildirim almak istiyorum. Android SDK ile mümkün mü?Giden çağrı durumu

onCallStateChanged İşlevi yalnızca, Kişi telefonundan bir numara (OFFHOOK) aradığında ve çağrı yanıtlayan kişi aramayı kesdiğinde (IDLE) çağrılır, ancak bunu bilmek için bir Durum parametresi yoksa, diğer son kullanıcı mı yapar? çağrıyı aldı?

01-19 19:33:30.633: DEBUG/CallNotifier(638): stopRing()... (OFFHOOK state) 
01-19 19:33:30.662: DEBUG/Ringer(638): stopRing()... 
01-19 19:33:30.694: DEBUG/Ringer(638): - stopRing: null mRingHandler! 
01-19 19:33:31.256: DEBUG/PhoneApp(638): updateWakeState: callscreen true, dialer false, speaker false... 
01-19 19:33:31.287: DEBUG/PhoneApp(638): updateWakeState: keepScreenOn = false (isRinging false, showingDisc false) 

cevap

1

Ben aynı sorunu yaşıyorum: Çağrı diğer tarafında alınan zaman

public class MyPhoneStateListener extends PhoneStateListener{ 

    public void onCallStateChanged(int state,String incomingNumber){ 
     Log.d("Checking---->",TelephonyManager.ACTION_PHONE_STATE_CHANGED); 
    } 
} 

Logcat sadece aşağıdaki bilgileri verir. Gelen çağrılar için PhoneStateListener kullanıyorum, iyi çalışıyor. Ama giden aramalar için ben sadece Android.intent.action.NEW_OUTGOING_CALL amacına bir BroadcastReceiver kaydı yapabildim. Bildiğim kadarıyla, karşı tarafın aldığı hava durumunu belirlemenin bir yolu yoktur. Ancak, arama bilgilerini çevrimdışına almak için CallLog'u kullanabilirsiniz. Detaylı çağrı durumu olayları, sadece kendi Andoid'inizi derlemediğiniz sürece erişemeyeceğiniz iç sınıf com.android.internal.telephony.Phone ile kullanılabilir.

+2

Bu mantıklı değil. Üretici, aramanın ne zaman bağlandığını bilir. Eğer onlara uygunsa, bu sizin için kullanılabilir. –

+2

@RKS Evet, bu mantıklı. Giden çağrı durumu, iş ortağının henüz cep telefonlarını almadığı halde, çevirici çağrıyı yaptıktan hemen sonra CALL_STATE_IDLE ile CALL_STATE_OFFHOOK arasındadır. –