2010-01-28 10 views

cevap

2

Sorunuzun ne olduğundan emin olmadığınız için sorunuz biraz belirsiz. İşte

SMS içerik sağlayıcı değişiklikler için dışarı dinlemek nasıl, bunu yararlı

String url = "content://sms/"; 
     Uri uri = Uri.parse(url); 
     getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler)); 

     /uriSms = Uri.parse("content://sms/inbox"); 
     Cursor c = getContentResolver().query(uriSms, null,null,null,null); 

     //Log.d("COUNT", "Inbox count : " + c.getCount()); 


} 

class MyContentObserver extends ContentObserver { 

    public MyContentObserver(Handler handler) { 

     super(handler); 

    } 

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

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

    Log.v("SMS", "Notification on SMS observer"); 

    Message msg = new Message(); 
    msg.obj = "xxxxxxxxxx"; 

    handler.sendMessage(msg); 

    Uri uriSMSURI = Uri.parse("content://sms/"); 
    Cursor cur = getContentResolver().query(uriSMSURI, null, null, 
       null, null); 
    cur.moveToNext(); 
    String protocol = cur.getString(cur.getColumnIndex("protocol")); 
    if(protocol == null){ 
      Log.d("SMS", "SMS SEND"); 
      int threadId = cur.getInt(cur.getColumnIndex("thread_id")); 
      Log.d("SMS", "SMS SEND ID = " + threadId); 
      getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadId), null, null); 

    } 
    else{ 
     Log.d("SMS", "SMS RECIEVE"); 
     int threadIdIn = cur.getInt(cur.getColumnIndex("thread_id")); 
     getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadIdIn), null, null); 
    } 

} 
+0

O zaman daha açık olacağım: Kişinin adını alıyorum adres defterine kendi uygulama defteri uygulamasına sahibim ve kişi içerik sağlayıcısını kullanarak yerel adres defterine Numarayı ilet. Bu yüzden sorum şu: 1) Kişinin Kişi Adı veya Kişinin Kişinin Yerel Kişisi numaralı adresindeki Kişinin Kişinin Numarası değiştirildiği zaman başvurum için nasıl bildirim alacağım 2) Yerelde hangi alanı nasıl bulacağımı nasıl anlarım Adres defteri değiştirildi. Teşekkür ederiz – warrior

+0

super.onChange (arg0); çok önemli! – herbertD

+0

Ben de @warrior ile aynı problemle karşılaşıyorum. Çözüm [email protected] adresinden benimle paylaştıysa – user915267

1

Eğer api seviyesinde 3, daha yeni bir şey hedefliyorsanız Eğer ContactsContract.Contacts.CONTENT_URI kullanmalıdır bulabilirsiniz.

ve daha sonra sadece bir konu: getContentResolver(). RegisterContentObserver (ContactsContract.Contacts.CONTENT_URI, true, contentObserver);

Bu yöntemle neyin değiştiğini bilmiyorsunuz.

+0

'Ne değişti 'nasıl bilinmeli? –

İlgili konular