Try just repeatedly deleting everything in the log regardless of the
state. A service that does this every 5 seconds should be very fast
and good.


On Aug 4, 1:25 pm, Donald <[email protected]> wrote:
> hi guys,
>
> i have a application which will listen to incoming calls. so in the
> TelephonyManager.CALL_STATE_IDLE state which means the call is hung up
> i'm deleting the current number from the Call Log.
>
> To delete the Call log i used  ContentObserver which will notify me
> when a new entry is added to the Call Log.
>
> 10 out of 8 times this works fine. but sometimes onChange(boolean b)
> is not notified
>
> my guess is this can happen due to last entry is not added to the
> CallLog in CALL_STATE_IDLE state. so that means i'm doing this in a
> wrong place.
>
> so guys could you please let me know when should i delete this call
> log??
>
> this is how i delete call log
>
> case TelephonyManager.CALL_STATE_IDLE:
>
>                                 listeneNativeInbox();
>
> protected void listeneNativeInbox() {
>
>                 context.getContentResolver().registerContentObserver(
>                                 CallLog.Calls.CONTENT_URI, true, new 
> MyInboxListener(handler));
>
>         }
>
>         class MyInboxListener extends ContentObserver {
>
>                 public MyInboxListener(Handler handler) {
>                         super(handler);
>                         // TODO Auto-generated constructor stub
>                 }
>
>                 @Override
>                 public boolean deliverSelfNotifications() {
>                         // TODO Auto-generated method stub
>                         return false;
>                 }
>
>                 @Override
>                 public void onChange(boolean selfChange) {
>                         // TODO Auto-generated method stub
>                         boolean b = false;
>                         Uri books = 
> Uri.parse("content://com.sabretch.colorEyeD/SABRE");
>                         Log.d("Authority", books.getAuthority());
>                         Cursor cursor = 
> context.getContentResolver().query(books, null,
>                                         "Mobile" + "='" + phonenbr + "'", 
> null,
>                                         "category " + "DESC");
>                         if (cursor != null) {
>                                 if (cursor.moveToNext()) {
>                                         b = true;
>                                 }
>                         }
>                         Message msg = new Message();
>                         msg.obj = "xxxxxxxxxx";
>                         handler.sendMessage(msg);
>                         Cursor cur = context.getContentResolver().query(
>                                         CallLog.Calls.CONTENT_URI, null, 
> null, null,
>                                         CallLog.Calls._ID + " DESC");
>
>                         cur.moveToNext();
>                         long threadIdIn = cur
>                                         
> .getLong(cur.getColumnIndex(CallLog.Calls._ID));
>
>                         /*
>                          * Uri uri = 
> ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI,
>                          * threadIdIn);
>                          */
>                         if (b) {
>                                 ContentValues values = new ContentValues();
>                                 values.put(CallLog.Calls.NUMBER, 
> "4444444444");
>                                 values.put(CallLog.Calls.CACHED_NAME, 
> "Unknown");
>                                 // values.put(CallLog.Calls.TYPE, 
> CallLog.Calls.INCOMING_TYPE);
>                                 // long time = System.currentTimeMillis() - 
> 5000000;
>                                 // values.put(CallLog.Calls.DATE, time);
>
>                                 // int x = 
> context.getContentResolver().delete(uri, null, null);
>                                 try {
>                                         int x = 
> context.getContentResolver().update(
>                                                         
> CallLog.Calls.CONTENT_URI, values,
>                                                         CallLog.Calls._ID + 
> "='" + threadIdIn + "'", null);
>                                         Log.d("FFFFFFFFFASSDSSDESD", 
> Integer.toString(x));
>                                         // = true;
>                                 } catch (Exception e) {
>                                         // TODO: handle exception
>                                         int x = 
> context.getContentResolver().update(
>                                                         
> CallLog.Calls.CONTENT_URI, values,
>                                                         CallLog.Calls._ID + 
> "='" + 0 + "'", null);
>                                         // = true;
>                                 }
>                         }
>                         System.exit(0);
>                         // }
>                 }
>         }
>
> regards,
> Donald

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to