android content observer - onChange-Methode prüft, ob der letzte Anruf verpasst wurde oder nicht

Ich arbeite an einer Android-App und muss die Anzahl der eingehenden Anrufe in Abwesenheit erhöhen.

Ich habe einen ContentObserver registriert. Wie kann ich in der onChange-Methode überprüfen, ob es sich bei dem Anruf um einen unbeantworteten Anruf handelt oder nicht?

Ich habe einen Contentobserver mit folgendem Code:

public class IncomingCall extend BroadcastReceiver
{
public void onReceive( final Context context, Intent intent)
{
String state= extras.getString(TelephonyManager.EXTRA_STATE);
    if (TelephonyManager.EXTRA_STATE_IDLE.equals(state))
        {
            context.getApplicationContext().getContentResolver().registerContentObserver(android.provider.CallLog.Calls.CONTENT_URI, true, new CallContentObserver(new Handler(), context));
        }

}

 class CallContentObserver extends ContentObserver {

    Context context;

    public CallContentObserver(Handler handler, Context context) {
        super(handler);
        this.context = context;
    }

    @Override
    public boolean deliverSelfNotifications() {
        return true;
    }

    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);

        //flag for missed calls
        how to check if last call is missed call?

Cursor c = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,null,null, null, null);
        int type = c.getColumnIndex(CallLog.Calls.TYPE);
        while (c.moveToNext()) {
            String callType = c.getString(type);

            int dircode = Integer.parseInt(callType);
            switch (dircode) {

            case CallLog.Calls.MISSED_TYPE:
                flag++;

            }
            break;
        }

}

Gibt es nicht einen anderen Weg, dies zu tun? (Besser als beim Überprüfen des letzten Anrufs aus der CallLog-Datenbank?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage