2010-09-08 26 views
6

Cevapsız çağrı için niyetin ne olduğunu bilen var mı. Aslında başvurumda cevapsız arama ve gelen çağrıya sms göndermek istiyorum.yayın alıcısı android

cevap

10

Cevapsız arama için özel bir yayın yok AFAIK.

Daha sonra aramanın yapıldığı olmadığını görmek için CallLog içerik sağlayıcı kontrol etmeyi deneyin, EXTRA_STATE_RINGING den EXTRA_STATE_IDLE telefon vardiya kadar bekleyin ACTION_PHONE_STATE_CHANGED yayınları izleyebilirsiniz. Bu tekniği denemedim, ama işe yarayabilir.

+0

@ CommonsWare-Can biz Cevapsız Çağrı ve Reddedildi Çağrı ayırt çünkü hem fonksiyon içinde yukarıda belirtilen yol! –

11

Sen sadece bu yapmanız gereken, sizin uygulamasından bir ContentObserver

public class MissedCallsContentObserver extends ContentObserver 
{ 
    public MissedCallsContentObserver() 
    { 
     super(null); 
    } 

    @Override 
    public void onChange(boolean selfChange) 
    { 
     Cursor cursor = getContentResolver().query(
      Calls.CONTENT_URI, 
      null, 
      Calls.TYPE + " = ? AND " + Calls.NEW + " = ?", 
      new String[] { Integer.toString(Calls.MISSED_TYPE), "1" }, 
      Calls.DATE + " DESC "); 

     //this is the number of missed calls 
     //for your case you may need to track this number 
     //so that you can figure out when it changes 
     cursor.getCount(); 

     cursor.close(); 
    } 
} 

kullanmak gerekir:

MissedCallsContentObserver mcco = new MissedCallsContentObserver(); 
getApplicationContext().getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, mcco); 
+0

Merhaba, cursor.close() 'kasıtlı olarak dışarıda bırakılmış olup olmadığını bilmek isterim? ContentObserver'ın otomatik olarak kapanacağı için gerekli değil mi? – lock

+0

iyi soru. Bunu bilerek bırakmadım, orada olmalıydı. Cevabımı güncelleyeceğim. – Joe

İlgili konular