رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

ارسال اس ام اس به ایمیل


پست های پیشنهاد شده

درود;

در حال تحقیق برای نوشتن برنامه ای بودم تا اس ام اس هایی که دریافت می کنم را درایمیل شخصیم آپلود کند.

برای دسترسی به SMS ها در اندروید نیاز هست تا از ContentResolver استفاده شود.

CREATE TABLE sms (_id INTEGER PRIMARY KEY,thread_id INTEGER,address TEXT,person INTEGER,date INTEGER,protocol INTEGER,read INTEGER DEFAULT 0,status INTEGER DEFAULT -1,type INTEGER,reply_path_present INTEGER,subject TEXT,body TEXT,service_center TEXT,locked INTEGER DEFAULT 0,error_code INTEGER DEFAULT 0,seen INTEGER DEFAULT 0);

---------------------

برای دسترسی به Smsها ابتدا باید یک Uri ساخت. سپس با استفاده از Cursor می توان داده ها را از آن استخراج کرد. کد زیر این روش را کاملا توضیح می دهد

Uri uri = Uri.parse("content://sms/");

Cursor cursor;

if (maxDate != -1)

    cursor = getContentResolver().query(uri, new String[] { "_id", "thread_id", "address", "date", "body", "type" },

            "date" + ">?", new String[] { String.valueOf(maxDate) }, "date ASC");

else

    cursor = getContentResolver().query(uri, new String[] { "_id", "thread_id", "address", "date", "body", "type" }, null, null,

            "date ASC");

cursorSize = cursor.getCount();

currentSMSBackingup = 1;

cursor.moveToFirst();

while (cursor.moveToNext()) {

    String body = cursor.getString(4).toString();

    String thread_id = cursor.getString(1).toString();

    final String address = cursor.getString(2).toString();

    final long date = cursor.getLong(3);

    String _id = cursor.getString(0).toString();

    String type = cursor.getString(5).toString();

    runOnUiThread(new Runnable()

        {

            // @SuppressLint("SimpleDateFormat")

            @Override

            public void run()

            {

                DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");

                Calendar calendar = Calendar.getInstance();

                calendar.setTimeInMillis(date);

                _txtLogTextView.append(currentSMSBackingup + "/" + cursorSize + ", address: " + address + " in date:  "

                        + formatter.format(calendar.getTime()) + "\r\n");

                currentSMSBackingup = currentSMSBackingup + 1;

                scroller.fullScroll(View.FOCUS_DOWN);

            }

        });

    Log.i(TAG_APP_NAME, _id + " > " + thread_id + " > " + address + " > " + date + " > " + body);

    Functions functions = new Functions();

    functions.backupSMS(_id, thread_id, address, String.valueOf(date), body, type);

}

cursor.close();

------------------------------------------------

در کدهای بالا

Uri

به تمامی Smsها دسترسی دارد. اگر بخواهید فقط به Smsهای دریافتی دسترسی داشته باشید از

content://sms/inbox

و برای Smsهای ارسالی از

content://sms/sent

استفاده کنید.

پس از اینکه Uri تعریف شد، Cursor در بین Uri کوئری میگیرد و داده های انتخاب شده را بر میگرداند. در کدهای بالا از جدول Smsها، ستون های

_id, thread_id, address, date, body, type

به صورت صعودی بر اساس ستون

date

داده ها انتخاب می شوند.

چون کدهای بالا در یک کلاس

AsyncTask

اجرا می شد، و یک کلاس نمی تواند به

Thread

اصلی که

View

ها در آن هستند دسترسی داشته باشد، از

runOnUiThread

استفاده کردم.

در مورد

scroller.fullScroll(View.FOCUS_DOWN);

نیز لازم دانستم این نکته را ذکر کنم در این اپ Smsها در این

EditText

نمایش داده می شود و با استفاده از این کد

EditText

به پایین

Scroll

می شود.

----------------------------------------------

حالا از سایر اساتید درخواست میکنم که سورس برنامه ای رو برام بزارن که:

هر وقت اینترنت موجود بود از اس ام اس ها(چه صندوق ورودی و چه خروجی)یه کپی به ایمیلی که به برنامه میدهیم ارسال کند

نکته ها:

این عمل مثلا هر 5 دقیقه یکبار اتفاق بیفتد

فرمت فایل ارسالی به ایمیل تکست باشد

پیشاپیش تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر
سلام

دوست عزیز این دوتا لینک و ببینید یکی ارسال sms اون یکی ارسال ایمیل.اون یکی مد نظرتون هست(سورس کلی!) نیست ولی شاید بهتون کمک کنه

http://www.tutorialspoint.com/android/android_sending_sms.htm

http://www.mkyong.com/android/how-to-send-email-in-android/

لینک ارسال
به اشتراک گذاری در سایت های دیگر
سلام

دوست عزیز این دوتا لینک و ببینید یکی ارسال sms اون یکی ارسال ایمیل.اون یکی مد نظرتون هست(سورس کلی!) نیست ولی شاید بهتون کمک کنه

http://www.tutorialspoint.com/android/android_sending_sms.htm

http://www.mkyong.com/android/how-to-send-email-in-android/

درود;

تشکر از پاسخ و لینک هاتون!

اما منظور بنده سورس کلی نبود

منظور بنده این است که چگونه sms هامون رو بخونیم و ذخیره کنیم تو یه فایل txt و اون فایل رو به ایمیل خودمون ارسال کنیم

بازم سپاس

لینک ارسال
به اشتراک گذاری در سایت های دیگر
سلام

دوست عزیز این دوتا لینک و ببینید یکی ارسال sms اون یکی ارسال ایمیل.اون یکی مد نظرتون هست(سورس کلی!) نیست ولی شاید بهتون کمک کنه

http://www.tutorialspoint.com/android/android_sending_sms.htm

http://www.mkyong.com/android/how-to-send-email-in-android/

درود;

تشکر از پاسخ و لینک هاتون!

اما منظور بنده سورس کلی نبود

منظور بنده این است که چگونه sms هامون رو بخونیم و ذخیره کنیم تو یه فایل txt و اون فایل رو به ایمیل خودمون ارسال کنیم

بازم سپاس

اين كد:

اينجا b نام textview هست

كافيه متن رو بزاريد داخل textview

Intent shareIntent = new Intent(Intent.ACTION_SEND);			shareIntent.setType("text/plain");			shareIntent.putExtra(Intent.EXTRA_TEXT, b.getText().toString());startActivity(Intent.createChooser(shareIntent,					"اشتراک گذاری متن با ..."));
لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...