avenar

توسعه دهنده اندروید
  • تعداد ارسال ها

    2
  • تاریخ عضویت

  • آخرین بازدید

اعتبار در انجمن

0 Neutral

درباره avenar

  • درجه
    Newbie
  1. درود; تشکر از پاسخ و لینک هاتون! اما منظور بنده سورس کلی نبود منظور بنده این است که چگونه sms هامون رو بخونیم و ذخیره کنیم تو یه فایل txt و اون فایل رو به ایمیل خودمون ارسال کنیم بازم سپاس
  2. درود; در حال تحقیق برای نوشتن برنامه ای بودم تا اس ام اس هایی که دریافت می کنم را درایمیل شخصیم آپلود کند. برای دسترسی به 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 دقیقه یکبار اتفاق بیفتد فرمت فایل ارسالی به ایمیل تکست باشد پیشاپیش تشکر