6

不在着信の意図を知っている人はいますか。実際、アプリケーションで不在着信と着信時に SMS を送信したいと考えています。

4

2 に答える 2

12

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);
于 2011-01-13T19:59:04.593 に答える
10

私の知る限り、不在着信の特定のブロードキャストはありません。

ブロードキャストを視聴し、電話が からにACTION_PHONE_STATE_CHANGED切り替わるまで待ってから、コンテンツ プロバイダーをチェックして、電話に出られなかったかどうかを確認してください。この手法は試していませんが、うまくいくかもしれません。EXTRA_STATE_RINGINGEXTRA_STATE_IDLECallLog

于 2010-09-08T10:19:20.090 に答える