Подтвердить что ты не робот

Зарегистрировать локальный трансляционный приемник в AndroidManifest.xml?

Есть ли способ зарегистрировать BroadcastReceiver в AndroidManifest.xml и получать широковещательную рассылку, отправленную LocalBroadcastManager?

В настоящее время я должен позвонить

registerReceiver(BroadcastReceiver receiver, IntentFilter filter) 

чтобы зарегистрировать приемник, объявить в AndroidManifest.xml не получится. Но это означает, что я должен точно знать имя пакета получателя и имя класса, а не только фильтр намерений. Можно ли объявить получателя в файле манифеста?

следующий мой текущий код.

AndroidManifest.xml:

...
<receiver 
    android:name="com.example.test.MessageReceiver"
    android:enabled="true" >
    <intent-filter>
        <action android:name="com.m2x.test.intent.MESSAGE_RECEIVED" />
    </intent-filter>
</receiver>
...

MainActivity.java:

Intent intent = new Intent();
intent.setAction("com.m2x.test.intent.MESSAGE_RECEIVED");

LocalBroadcastManager manager = LocalBroadcastManager.getInstance(mContext.get());
manager.sendBroadcast(intent);

MessageReceiver.java

public class MessageReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals("com.m2x.test.intent.MESSAGE_RECEIVED")) {
            Toast.makeText(context, "user message received", Toast.LENGTH_SHORT).show();
        }

    }
}
4b9b3361

Ответ 1

Нет, вы не можете.

Локальный BroadcastReceiver не является реальным BroadcastReceiver, в основном его списком функций callbacks.
Вы можете проверить исходный код LocalBroadcastManager.java.