Приемник пропущенных звонков в Android - PullRequest
6 голосов
/ 08 сентября 2010

Кто-нибудь знает, какова цель пропущенного вызова.На самом деле я хочу отправить смс на пропущенный звонок и входящий звонок в моем заявлении.

Ответы [ 2 ]

11 голосов
/ 13 января 2011

Вам необходимо использовать 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();
    }
}

Из вашего приложения вам просто нужно сделать это:

MissedCallsContentObserver mcco = new MissedCallsContentObserver();
getApplicationContext().getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, mcco);
10 голосов
/ 08 сентября 2010

Не существует конкретной трансляции для пропущенного вызова, AFAIK.

Вы можете смотреть ACTION_PHONE_STATE_CHANGED трансляции, подождите, пока телефон не переключится с EXTRA_STATE_RINGING на EXTRA_STATE_IDLE, затем попробуйте проверить поставщика контента CallLog, чтобы узнать, пропущен ли вызов. Я не пробовал эту технику, но она может работать.

...