Android 如何为广播接收器定义IntentFilter

Android 如何为广播接收器定义IntentFilter,android,sms,broadcastreceiver,Android,Sms,Broadcastreceiver,因此,我尝试制作一个应用程序,当收到每个文本消息时,它将显示一条toast消息。我希望应用程序只显示toast,我目前正在使用这段代码来显示它,但在应用程序运行时出现异常错误。我正在使用这个代码 BroadcastReceiver BR = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Toast.ma

因此,我尝试制作一个应用程序,当收到每个文本消息时,它将显示一条toast消息。我希望应用程序只显示toast,我目前正在使用这段代码来显示它,但在应用程序运行时出现异常错误。我正在使用这个代码

BroadcastReceiver BR = new BroadcastReceiver() {

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

        }
    };


    IntentFilter filter = new  IntentFilter();

    registerReceiver(BR, filter);

我很确定这是意图过滤器,但我不确定。

您必须在清单中输入您的broadcastreceiver,然后在我们为活动添加时添加意图过滤器。在运行时也可以这样做。

您应该创建扩展broadcastreceiver的单独类 然后重写OnReceive方法

这里,AlarmMain。这是主类和 OneShotAlarm.class扩展了BroadcaseReceiver:

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

        }
您可以按照以下步骤调用onReceive():

Intent intentAlarm = new Intent(AlarmMain.this, OneShotAlarm.class);
operation = PendingIntent.getBroadcast(AlarmMain.this, 0, intentAlarm, 0);

alarmManager  = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, objDate.getTime(), operation);
您可以尝试以下操作,但这是可选的(将以下标记包括到AndroidManifest.xml中)



您最好也发布日志。什么异常错误?发布堆栈跟踪。发布logcat错误。你提供的信息很难帮助你。。
<receiver 
    android:name="com.android.alarm.OneShotAlarm"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>