آموزش دریافت sms در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش دریافت sms در برنامه نویسی اندروید خواهیم پرداخت قبلتر آموزش هایی همانند دریافت اس ام اس های دیگران بدون فهیمدن آنها در برنامه نویسی اندروید و SmsManger را برای شما قرار دادیم در امروز می خواهیم آموزش دریافت sms هایی به جز اس ام های ورودی بپردازیم همانطور که می دانید در گوشی سه نوع اس ام اس وجود دارد آنهایی که ارسال می شود آنهایی که Draft (پیش نویس) می شوند و آنهایی که دریافت می شوند و در Inbox قرار می گیرند در ادامه با ما همراه باشید.
لینک های آموزش های قبلی

دریافت اس ام اس های دیگران بدون فهیمدن آنها در برنامه نویسی اندروید

ارسال اس ام اس در اندروید

ارسال sms طولانی در برنامه نویسی اندروید

 
در ابتدای کار وارد فایل AndroidManifest.xml شده و دسترسی زیر را اضافه کنید.

     <uses-permission android:name="android.permission.READ_SMS" />

سپس وارد فایل layout خود شده و یک ScrollView و یک TextView در آن قرار دهید همانند زیر

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <TextView
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_margin="10dp"
        android:layout_height="wrap_content" />
</ScrollView>

سپس وارد اکتیویتی خود شده و کدهای زیر را در آن قرار دهید در اینجا نام آن برابر با MainActivity.java است.

package ir.programchi;
import java.util.Date;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.widget.TextView;
/**
 *
 * @author Jefferson
 *
 */
public class MainActivity extends Activity {
       TextView textView;
       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              textView = (TextView) findViewById(R.id.textview);
              getSMSDetails();
       }
       private void getSMSDetails() {
              StringBuffer stringBuffer = new StringBuffer();
              stringBuffer.append("*********SMS History*************** :");
              Uri uri = Uri.parse("content://sms");
              Cursor cursor = getContentResolver().query(uri, null, null, null, null);
              if (cursor.moveToFirst()) {
                     for (int i = 0; i < cursor.getCount(); i++) {
                           String body = cursor.getString(cursor.getColumnIndexOrThrow("body"))
                                         .toString();
                           String number = cursor.getString(cursor.getColumnIndexOrThrow("address"))
                                         .toString();
                           String date = cursor.getString(cursor.getColumnIndexOrThrow("date"))
                                         .toString();
                           Date smsDayTime = new Date(Long.valueOf(date));
                           String type = cursor.getString(cursor.getColumnIndexOrThrow("type"))
                                         .toString();
                           String typeOfSMS = null;
                           switch (Integer.parseInt(type)) {
                           case 1:
                                  typeOfSMS = "INBOX";
                                  break;
                           case 2:
                                  typeOfSMS = "SENT";
                                  break;
                           case 3:
                                  typeOfSMS = "DRAFT";
                                  break;
                           }
                           stringBuffer.append("\nPhone Number:--- " + number + " \nMessage Type:--- "
                                         + typeOfSMS + " \nMessage Date:--- " + smsDayTime
                                         + " \nMessage Body:--- " + body);
                           stringBuffer.append("\n----------------------------------");
                           cursor.moveToNext();
                     }
                     textView.setText(stringBuffer);
              }
              cursor.close();
       }
}

در بالا بعد از به دست آوردن اس ام اس های کاربر بر اساس نوع هرکدام جدا شده و در textView قرار خواهد گرفت .
 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.
 
 

مطالعه بیشتر