0

我有我的广播接收器,它应该扫描传入的消息并使用捆绑包并使用新的导航架构组件和导航控制器将原始地址和消息传递给新片段。我被卡住了,因为我在广播接收器中找不到视图。这是我到目前为止所尝试的。

public class SimpleSmsReceiver 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]);

        Bundle bundle = new Bundle();
        bundle.putString("MessageNumber", messages.getOriginatingAddress());
        bundle.putString("Message", messages.getMessageBody());

        Navigation.findNavController(context).navigate(R.id.nav_otp_fragment, bundle);


    }

}

我收到错误必需类型:提供的视图:上下文

4

1 回答 1

0

BroadcastReceivers 不是 UI 组件。您无法对BroadcastReceiver. 如果您BroadcastReceiver有对您的引用,Activity那么它可以在Activity(以数据作为参数)中调用一个方法,以便Activity然后可以创建Fragment并执行其他任何必要的操作。

于 2020-12-15T13:17:38.843 回答