observador de contenido de Android: el método onChange comprueba si la última llamada es una llamada perdida o no
Estoy trabajando en una aplicación de Android y necesito incrementar las llamadas perdidas entrantes.
He registrado un ContentObserver. ¿Cómo puedo verificar el método onChange si la llamada es una llamada perdida o no?
Tengo un contentobserver con el siguiente código:
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;
}
}
¿No hay otra manera de hacer esto? (¿Mejor que yo cuando revisé la última llamada de la base de datos de CallLog?