您可以使用字符串资源定义Android意图过滤器吗?

您可以使用字符串资源定义Android意图过滤器吗?,android,string,resources,intentfilter,Android,String,Resources,Intentfilter,我想在strings.xml文件中定义我的意图的字符串名称,然后将该字符串绑定到意图过滤器,如下所示: <intent-filter > <action android:name="@string/app_intent" > </action> <category android:name="android.intent.category.DEFAULT" > </category> </inte

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

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

    <category android:name="android.intent.category.DEFAULT" >
    </category>
</intent-filter>

然而,当我尝试这个方法时,我得到了关于系统的各种错误,并且找不到任何活动来处理我的意图。我试图将值(即意图名称)集中化,而不是在清单和代码中硬编码。事实上,至少这让我可以将它集中在应用程序代码之外,但我仍然在清单中硬编码它


这真的是不可能做到的,还是有办法让它工作起来?

这不是intent filter的问题,问题在于
android:name
android:name
属性也没有将字符串资源用作活动名称。示例
在android中无效。

没有直接回答OP的问题,但促使我提出这个问题的原因是,我希望能够在不同的情况下定义不同的操作(包括在使用此库的应用程序的android库中定义触发组件的操作)。我终于找到了,这才是我真正需要的。希望这对其他人也有用


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

有趣的问题。如果从
@string/app\u intent
周围删除“”会发生什么情况?我预计会出现构建错误,但可能值得一试。出于好奇,您认为这会有什么作用?资源可以随设备配置而变化-从横向与纵向到屏幕大小到当前语言。您不希望意向操作随这些参数的变化而变化。@先生,谢谢您的建议,但正如您所料,它会引发异常,特别是
解析器异常。谢谢。@adamp:实际上,字符串资源不受方向更改的影响。此外,如果默认的
/res/values/strings.xml
文件包含“intent”字符串,则本地化的“values”目录将不需要它们。换句话说,如果(例如,在为法语设置的设备上)
/res/values fr/strings.xml
不包含特定的字符串资源,Android将在运行时故障切换到
/res/values/strings.xml
。@MisterSquonk-有点臭。最好完全消除硬编码的值。我认为它应该可以工作,因为您可以对
应用程序
节点的
android:icon
android:label
属性执行相同的操作。sighIt具体是
android:name
属性,还是仅限于活动节点?因为另一个,
android:label
确实采用了资源ID,至少在清单的
应用程序
节点上是这样。我不确定限制在哪里,因为清单中的一些属性实际上支持这种方法。但不管出于什么原因,这一条显然是无效的。如果要使用字符串,什么是有效的?