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

ساختن BroadcastReceiver

مهدی   9 سال پیش  9 سال پیش
0 0

با سلام و خسته نباشید

من میخوام یک برودکست ریسیور بسازم، طوری که اکشن دلخواه خودم رو بهش بدم و نسبت به اکشن دلخواه من حساس باشه و هروقت اون اکشن در گوشی مورد نظر انجام شد برودکست ریسیور خبر دار بشه.

برای اینکار سه تا activity دارم که کدهای اکتیویتی هام به شکل زیر هست، برنامه کرش میکنه و علت کرش رو lang.RunTimeExeption میزنه. تقریبا دوروزه دارم دنبال عیب برنامه می گردم اما موفق نشدم خطا رفع کنم. از استاد عزیز و دوستان خواهش دارم کمکم کنن.

package mehdi.jamali.VoyeurFinder;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.widget.Toast;


public class Reciever extends Activity {
public static String BROADCAST_ACTION = action android:name="android.provider.Telephony.SMS_SEND";
    private BroadcastReceiver receiver = new BroadcastReceiver() {

                                           @Override
                                           public void onReceive(Context context, Intent intent) {
                                               Toast.makeText(G.context, "received", Toast.LENGTH_SHORT).show();
                                           }
                                       };


    @Override
    protected void onResume() {
        IntentFilter filter = new IntentFilter();
        filter.addAction(ActivityStartup.BROADCAST_ACTION);
        if (receiver != null) {
            registerReceiver(receiver, filter);
        }
        super.onResume();
    }


    @Override
    protected void onPause() {
        if (receiver != null) {
            unregisterReceiver(receiver);
        }
        super.onPause();
    }

}

همچنین در manifest پرمیشن های لازم رو آوردم، کلاس ریسور هم ساختم و اکشن مورد نظر رو در manifest آوردم.

<receiver android:name=".Reciever" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_SEND" />
            </intent-filter>
        </receiver>

من قصدم ارسال اسمس نیست فقط میخوام اگر اسمسی ارسال شد، ریسیور به من خبر بده، دوتا اکتیویتی دیگه کلاس G هست و ActivityStartup هست که کد خاصی داخل اونها ننوشتم.

0 0
من یه غلط املایی داشتم، که توی کدم درست نوشته بودم اما اینجا اشتباه نوشتم (9 سال پیش)
0 0
(9 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
مهدی   9 سال پیش
0 0

امروز کدمو با یک اکشن دیگه امتحان کردم، باز هم جواب نداد، این اکشن مربوط به انلاک کردن گوشی توسط الگوی پترن هست، البته از اون روشی که استاد عزیزمون آموزش دادن به راحتی میشه این اکشن رو اجرا کرد اما هدف من اجرای اکشن دلخواهم هست. تصاویر اکتیویتی هارو واستون گذاشتم


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