آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دریافت پیامکی که طور آن بیشتر از یک پیامک است

mahdiFar77  10 سال پیش  10 سال پیش
+2 0

با سلام خدمت دوستان گرامی

بنده دارم روی برنامه ای کار میکنم که مربوط به کنترل پیامک ها است

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

ممنون میشم راهنمایی کنید.

با تشکر

0 0
عنوان با لحجه فامیل دور نوشته شده (10 سال پیش)
 برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  10 سال پیش
+1 0

وقتی پیامک رو دریافت میکنید، یک آرایه از Object[] pdus بهتون برمیگردونه.
کافیه این آرایه رو به هم بچسبونید تا کل پیامک رو بگیرید.

0 0
همین کارو کردم ولی وقتی بیشتر از یک پیامک میشه کلا نوشته رو عوض میکنه میشه کدش رو برام بزارید؟ (10 سال پیش)
پاسخ به سوال 
mahdiFar77  10 سال پیش
0 0

من این کد رو نوشتم درسته؟

Bundle bundle = intent.getExtras();
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            final SmsMessage[] messages = new SmsMessage[pdus.length];
            String sms = "";
            for (int i = 0; i < pdus.length; i++) {
                messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);

            }
            StringBuffer content = new StringBuffer();
            if (messages.length > 0) {
                for (int i = 0; i < messages.length; i++) {
                    content.append(messages[i].getMessageBody());
                    sms += messages[i].getMessageBody().toString();
                }
            }
            String mySmsText = content.toString();

پاسخ به سوال 
Hajhosseini  10 سال پیش
+7 0

اینکه من کد کامل رو قرار بدم کار درستی نیست، ولی چون کاملا مشخصه که شما تلاشتون رو کردین براتون نوشتمش.

 StructMessage message = new StructMessage();
        SmsMessage[] messages = new SmsMessage[pdus.length];
        String body = null;
        for (int i = 0; i < pdus.length; i++)
        {
            messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
        }

        SmsMessage sms = messages[0];
        try {
            if (messages.length == 1 || sms.isReplace()) {
                body = sms.getDisplayMessageBody();
            } else {
                StringBuilder bodyText = new StringBuilder();
                for (int i = 0; i < messages.length; i++) {
                    bodyText.append(messages[i].getMessageBody());
                }
                body = bodyText.toString();
            }
        } catch (Exception e) {

        }

موفق باشید

+1 0
تشکر-پس body میشه کل متن پیامک .درسته؟ (10 سال پیش)
پاسخ به سوال 
reza1234  10 سال پیش
+2 0

با سلام

من با کد زیر تست کردم و جواب گرفتم فقط دقت کن رو امولاتور نه رو گوشی تست کن

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SmsReciver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        // TODO Auto-generated method stub
        Bundle bundle = intent.getExtras();
        SmsMessage[] msgs = null;
        String SmSBody = "";
        if (bundle != null)
        {
            // Retrieve the SMS Messages received
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            //Log.i("LLLOOOOOGGGG pdus", "" + pdus.length);
            // For every SMS message received
            for (int i = 0; i < msgs.length; i++)
            {
                // Convert Object array
                msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                // Fetch the text message
                SmSBody += msgs[i].getMessageBody().toString();
             }
        }
 
    }
}

حالا اطلاعات تو SmSBody هست و میتونی از اون استفاده کنی

موفق باشی

 

0 0
MAMNON (10 سال پیش)
پاسخ به سوال 
AliBakh  10 سال پیش
0 0

سلام آقا

یه زحمتی می کشید اون کدی رو که آقای Hajhosseini نوشتن رو یه توضیح برام بدین خط به خط ؟


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .