Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <pre><code>if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { final String myPackageName = getPackageName(); if (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName)) { Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, myPackageName); startActivityForResult(intent, 1); }else { List&lt;Sms&gt; lst = getAllSms(); } }else { List&lt;Sms&gt; lst = getAllSms(); } </code></pre> <p>Set app as default SMS app</p> <pre><code> @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if (resultCode == RESULT_OK) { if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { final String myPackageName = getPackageName(); if (Telephony.Sms.getDefaultSmsPackage(mActivity).equals(myPackageName)) { List&lt;Sms&gt; lst = getAllSms(); } } } } } </code></pre> <p>Function to get SMS</p> <pre><code>public List&lt;Sms&gt; getAllSms() { List&lt;Sms&gt; lstSms = new ArrayList&lt;Sms&gt;(); Sms objSms = new Sms(); Uri message = Uri.parse("content://sms/"); ContentResolver cr = mActivity.getContentResolver(); Cursor c = cr.query(message, null, null, null, null); mActivity.startManagingCursor(c); int totalSMS = c.getCount(); if (c.moveToFirst()) { for (int i = 0; i &lt; totalSMS; i++) { objSms = new Sms(); objSms.setId(c.getString(c.getColumnIndexOrThrow("_id"))); objSms.setAddress(c.getString(c .getColumnIndexOrThrow("address"))); objSms.setMsg(c.getString(c.getColumnIndexOrThrow("body"))); objSms.setReadState(c.getString(c.getColumnIndex("read"))); objSms.setTime(c.getString(c.getColumnIndexOrThrow("date"))); if (c.getString(c.getColumnIndexOrThrow("type")).contains("1")) { objSms.setFolderName("inbox"); } else { objSms.setFolderName("sent"); } lstSms.add(objSms); c.moveToNext(); } } // else { // throw new RuntimeException("You have no SMS"); // } c.close(); return lstSms; } </code></pre> <p>Sms class is below:</p> <pre><code>public class Sms{ private String _id; private String _address; private String _msg; private String _readState; //"0" for have not read sms and "1" for have read sms private String _time; private String _folderName; public String getId(){ return _id; } public String getAddress(){ return _address; } public String getMsg(){ return _msg; } public String getReadState(){ return _readState; } public String getTime(){ return _time; } public String getFolderName(){ return _folderName; } public void setId(String id){ _id = id; } public void setAddress(String address){ _address = address; } public void setMsg(String msg){ _msg = msg; } public void setReadState(String readState){ _readState = readState; } public void setTime(String time){ _time = time; } public void setFolderName(String folderName){ _folderName = folderName; } } </code></pre> <p>Don't forget to define permission in your AndroidManifest.xml</p> <pre><code>&lt;uses-permission android:name="android.permission.READ_SMS" /&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload