Evgeny
Evgeny

Reputation: 25

BroadcastReceiver not working via AndroidManifest

I have some BroadcastReceiver named LocalTokenRequestReceiver in my app. I'm trying to send broadcast from another app.

This approach works fine:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        /* ..... */
        LocalTokenRequestReceiver localTokenRequestReceiver = new LocalTokenRequestReceiver();
        IntentFilter localTokenRequestFilter = new IntentFilter(getString(R.string.local_token_request));

        localTokenRequestFilter.addCategory(getString(R.string.broadcast_category));
        registerReceiver(localTokenRequestReceiver, localTokenRequestFilter);
    }
}

But it does not work this way:

<receiver
    android:name=".LocalTokenRequestReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="@string/local_token_request" />

        <category android:name="@string/broadcast_category" />
    </intent-filter>
</receiver>

Why is this may be so? I'm testing my app on Android 4.2.

Upvotes: 0

Views: 111

Answers (1)

F43nd1r
F43nd1r

Reputation: 7749

<intent-filter> does not support resources. Use explicit strings.

See <action> and <category>.

Upvotes: 1

Related Questions