2015-07-26 5 views
6

Bir kullanıcı telefona ne zaman cevap verdiğini bulmaya çalışıyorum. Uygulamam telefon numarasını çeviriyor, ancak kullanıcının yanıt verip vermediğini görmeden ihtiyacım olan bir anahtar işlevi gerçekleştiremiyorum. Bu yazıda görüldüğü gibi 5. sürümde bunu yapabildiniz gibi görünüyor, ama nasıl yapacağımı anlayamıyorum. Birinin bir çalışma ortamı bulması gerektiğini biliyorum çünkü bir kişi daha önce arama zamanlayıcısının kullanıcı cevap verdikten sonra başladığını belirttiği için bunu tespit etmenin bir yolu olmalı. Bu soru birçok kez yayınlandı, ancak kimse DOĞRU cevap yazmıyor.Android'de giden aramanın yanıtlanıp cevaplanmadığını nasıl kontrol edebilirim?

Cevabı görünüyor Tim S. burada cevap yatıyor:

Cannot detect when outgoing call is answered in Android

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

<receiver android:name=".listener.OutCallLogger"> 
    <intent-filter> 
     <action android:name="android.intent.action.PRECISE_CALL_STATE" /> 
    </intent-filter> 
</receiver> 
public class OutCallLogger extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     switch (intent.getIntExtra(TelephonyManager.EXTRA_FOREGROUND_CALL_STATE, -2) { 
      case PreciseCallState.PRECISE_CALL_STATE_IDLE: 
       Log.d(This.LOG_TAG, "IDLE"); 
       break; 
      case PreciseCallState.PRECISE_CALL_STATE_DIALING: 
       Log.d(This.LOG_TAG, "DIALING"); 
       break; 
      case PreciseCallState.PRECISE_CALL_STATE_ALERTING: 
       Log.d(This.LOG_TAG, "ALERTING"); 
       break; 
      case PreciseCallState.PRECISE_CALL_STATE_ACTIVE: 
       Log.d(This.LOG_TAG, "ACTIVE"); 
       break; 
     } 
    } 
} 
+0

Bunun için herhangi bir cevap veya yol tarifi var mı? –

+0

herhangi bir çözüm buldunuz mu? – Mujtaba

cevap

0

Ben aslında değişiklikler için zil sesi kontrol etmeden mümkün olduğunu sanmıyorum. Nasıl yapılabileceğine dair bir fikir vereceğim çünkü hiç kimse henüz cevap vermedi.

Geçerli telefonların her ikisinde (biri root, biri değil), numara çevrilir ve sonra 'çağrı zamanlayıcısı' başlar. Telefonun, aramanın ne zaman cevaplandırıldığını bile bilmediği anlaşılıyor, sadece bittiğinde. Bunu yapmanın basit bir yolu olduğuna inanmıyorum.

Her bir zil sesini karşılaştırırsanız ve aramanın hala çalıyor olduğundan emin olmak için boşlukları karşılaştırırsanız, bunun yanıtlanmadığını bileceksiniz. Orada olmaması gereken gürültüyü tespit ettikten sonra, birisinin "Merhaba" ya da "ne olursa olsun" dediği gibi cevap verebileceğini varsayabilirsin. Aramanın bitip bitmediğini nasıl anlayacağınızı zaten biliyorsunuz. Böyle bir projede birisinin ne tür bir ses API'sinin başlayacağı hakkında hiçbir fikrim yok.

İlgili konular