您可以使用字符串资源定义Android intent-filter吗?

eid*_*lon 15 string resources android intentfilter

我想在文件中定义我的意图的字符串名称strings.xml,然后将该字符串绑定到intent过滤器,如下所示:

<intent-filter >
    <action android:name="@string/app_intent" >
    </action>

    <category android:name="android.intent.category.DEFAULT" >
    </category>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试这个时,我得到关于系统的各种错误可能找不到任何活动来处理我的意图.我试图将值(即意图名称)保持集中,而不是在清单和代码中进行硬编码.事实上,至少这让我可以将它从应用程序代码中集中出来,但我仍然在清单中对其进行了硬编码.

这真的不可能做到,还是有办法让它发挥作用?

Sun*_*hoo 6

这不是intent-filter的问题,问题在于android:name.android:name属性也没有为活动名称获取字符串资源.示例<activity android:name="@string/app" android:label="@string/app_name">在android中无效.


Bor*_*jev 5

没有直接回答OP的问题,但促使我提出这个问题的是我希望能够在不同情况下定义不同的操作(包括定义一个触发使用此库的应用程序中的android库中的组件的操作)。我最终发现关于清单占位符,这实际上是我所需要的。希望这对其他人也有用。

PS:是的,在应用程序中定义占位符仍然允许您在库中使用它,因为清单合并发生在构建时。