Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有'#';不起作用_Android_Android Activity_Intentfilter - Fatal编程技术网

Android 带有'#';不起作用

Android 带有'#';不起作用,android,android-activity,intentfilter,Android,Android Activity,Intentfilter,我正在尝试设置一个意图过滤器,以便在用户单击以下URI时启动我的活动: example.com/pathA/pathB/#pathC/someGUID 因此,我将以下XML添加到清单文件中: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" />

我正在尝试设置一个意图过滤器,以便在用户单击以下URI时启动我的活动: example.com/pathA/pathB/#pathC/someGUID

因此,我将以下XML添加到清单文件中:

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

    <data
        android:host="example.com"
        android:pathPrefix="/pathA/pathB/#pathC"
        android:scheme="http" />
</intent-filter>

我认为“#”字符把一切都搞糟了,但我试图逃出这个字符,但没有运气。有什么想法吗


更新:当我说“尝试转义”时,我的意思是使用百分比编码(#等于%23)

意图过滤器用于解析URI并确定是否存在匹配项
#
是数字的URI通配符,如中的示例所示。根据,没有转义序列来转义URI中的
#
。因此,您应该使用另一个非保留符号(请注意,
*
也保留为任何文本的通配符)。

@user1774914-对-似乎没有一种方法来处理包含
#
的URI。您当然可以处理
/pathA/pathB/
并手动检查
#pathC
的URI的其余部分,但在系统看来,您也可以处理类似
/pathA/pathB/pathD
的URI。奇怪的是,android文档说。。。因为在从XML读取字符串时(在将其解析为模式之前),将“\”用作转义字符,所以需要双重转义:例如,文本“*”将被写为“\*”,而文本“\”将被写为“\\\”。这基本上与在Java代码中构造字符串时需要编写的内容相同。这会让您相信可以像\\#一样逃避it,但这仍然不起作用。我想这只是一个禁区。2年后,你有没有找到办法解决这个问题?我们真的应该通过检查应用程序代码中的URL来解决这个问题吗?如果它与所需的模式不匹配,我们只需打开浏览器就可以了?在意图过滤器解析方面没有任何变化