Read inbox messages of a particular number and display them in an activity

后端 未结 3 1833
一整个雨季
一整个雨季 2020-12-05 09:53

I am trying to read messages from an inbox and display them in an activity. My activity contains a button and listview. When I click on the button, all messages from the inb

3条回答
  •  [愿得一人]
    2020-12-05 10:41

    try this code you get sms for pertucular number:

    import java.util.ArrayList;
    
    import android.app.Activity;
    import android.content.ContentResolver;
    import android.content.Context;
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity extends Activity {
    
        ArrayList sms_id = new ArrayList();
        ArrayList sms_num = new ArrayList();
        ArrayList sms_Name = new ArrayList();
        ArrayList sms_dt = new ArrayList();
        ArrayList sms_body = new ArrayList();
    
        // private ImageView imageView;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Uri myMessage = Uri.parse("content://sms/");
            ContentResolver cr = this.getContentResolver();
            Cursor c = cr.query(myMessage, new String[] { "_id", "address", "date",
                    "body", "read" }, "address = '+9180009'", null, null);
            startManagingCursor(c);
            getSmsLogs(c, MainActivity.this);
    
        }
    
        public void getSmsLogs(Cursor c, Context con) {
    
            if (sms_num.size() > 0) {
                sms_id.clear();
                sms_num.clear();
                sms_Name.clear();
                sms_body.clear();
                sms_dt.clear();
            }
            try {
                if (c.moveToFirst()) {
                    do {
                        if (c.getString(c.getColumnIndexOrThrow("address")) == null) {
                            c.moveToNext();
                            continue;
                        }
                        String Number = c.getString(
                                c.getColumnIndexOrThrow("address")).toString();
                        String _id = c.getString(c.getColumnIndexOrThrow("_id"))
                                .toString();
                        String dat = c.getString(c.getColumnIndexOrThrow("date"))
                                .toString();
                        String Body = c.getString(c.getColumnIndexOrThrow("body"))
                                .toString();
                        Log.e("Body-->", "" + Body);
                        sms_id.add(_id);
                        sms_num.add(Number);
                        sms_body.add(Body);
                    } while (c.moveToNext());
                }
                c.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }
    

    check log for sms body: you have to use below permission

    
    

提交回复
热议问题