Невозможно использовать нотацию @string для определения <намерения-фильтрa> в AndroidManifest.xml - программирование
Подтвердить что ты не робот

Невозможно использовать нотацию @string для определения <намерения-фильтрa> в AndroidManifest.xml

Мой BroadcastReceiver никогда не вызывается, когда я использую "@string/action_name", чтобы определить действие фильтра намерения. Если я скопирую/вставлю соответствующую строку из strings.xml в AndroidManifest.xml, тогда она отлично работает!

Не рабочий пример из AndroidManifest.xml:

<receiver
    android:name=".ServerUpdateReceiver" >
    <intent-filter>
        <action android:name="@string/ACTION_INFORM_USER_SERVER_UPDATE" />
    </intent-filter>
</receiver>

Рабочий пример из AndroidManifest.xml:

    <receiver
        android:name=".ServerUpdateReceiver" >
        <intent-filter>
            <action android:name="com.franklinharper.intent.action.ACTION_INFORM_USER_SERVER_UPDATE" />
        </intent-filter>
    </receiver>

Только для полноты strings.xml содержит следующую строку:

<string name="ACTION_INFORM_USER_SERVER_UPDATE">com.franklinharper.intent.action.ACTION_INFORM_USER_SERVER_UPDATE</string>
4b9b3361

Ответ 1

Из spec, нет способа настроить действие с идентификатором ресурса. Это должна быть простая строка, возможно, чтобы не потребовать, чтобы система отправки Android Intent открыла ваш APK, чтобы выяснить, для чего нужен фильтр.