Practical way to find out if SMS has been sent

后端 未结 3 1423
闹比i
闹比i 2020-11-29 04:16

I am interested in how I can figure out if SMS has been sent from the device.

In order to get notification when SMS is recieved, we use a broadcaster with:



        
3条回答
  •  既然无缘
    2020-11-29 04:45

    Yes, It is possible to listen SMS ContentProvider by using ContentObserver

    Here is my example for Outgoing SMS:

    First register a ContetObserver with content://sms/

       public class Smssendservice extends Service{
    
           @Override  
           public void onCreate() {
                SmsContent content = new SmsContent(new Handler());  
                // REGISTER ContetObserver 
                this.getContentResolver().
                    registerContentObserver(Uri.parse("content://sms/"), true, SMSObserver);  
           } 
    
           @Override
           public IBinder onBind(Intent arg0) {
                // TODO Auto-generated method stub
    
                return null;
           }
    

    SMSObserver.class

           public class SMSObserver extends ContentObserver {
                private Handler m_handler = null;
    
                public SMSObserver(SMSLogger handler){
                     super(handler);
                     m_handler = handler;
                }
    
                @Override
                public void onChange(boolean selfChange) {
                super.onChange(bSelfChange);
                Uri uriSMSURI = Uri.parse("content://sms");
    
                Cursor cur = this.getContentResolver().query(uriSMSURI, null, null,
                     null, null);
                cur.moveToNext();
    
                String protocol = cur.getString(cur.getColumnIndex("protocol"));
    
                if(protocol == null) {
             //the message is sent out just now     
                }               
                else {
                     //the message is received just now   
                }
          }
      }
    
    }
    

提交回复
热议问题