دریافت پیامکی که طور آن بیشتر از یک پیامک است
مدیریت گفتگو
با سلام خدمت دوستان گرامی
بنده دارم روی برنامه ای کار میکنم که مربوط به کنترل پیامک ها است
وقتی پیامکی میاد و طول آن بیشتر از یکی از هست فقط مقداری که مربوط به پیامک اول هست رو میگیریه و مابقی رو بیخیال میشه
ممنون میشم راهنمایی کنید.
با تشکر
پاسخها 5
وقتی پیامک رو دریافت میکنید، یک آرایه از Object[] pdus بهتون برمیگردونه.
کافیه این آرایه رو به هم بچسبونید تا کل پیامک رو بگیرید.
نظرات
من این کد رو نوشتم درسته؟
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();
نظرات
اینکه من کد کامل رو قرار بدم کار درستی نیست، ولی چون کاملا مشخصه که شما تلاشتون رو کردین براتون نوشتمش.
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) {
}
موفق باشید
نظرات
با سلام
من با کد زیر تست کردم و جواب گرفتم فقط دقت کن رو امولاتور نه رو گوشی تست کن
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 هست و میتونی از اون استفاده کنی
موفق باشی
نظرات
سلام آقا
یه زحمتی می کشید اون کدی رو که آقای Hajhosseini نوشتن رو یه توضیح برام بدین خط به خط ؟
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
نظرات