gpt4 book ai didi

android - 将 URI 与 匹配,例如 AndroidManifest 中的 http ://example. com/something

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:09 26 4
gpt4 key购买 nike

我正在为 <data> 苦苦挣扎AndroidManifest.xml 中的元素文件以使我的 URI 匹配工作。我想匹配以下 URI:

不是

我主要是用它来工作

<data android:scheme="http"
android:host="example.com"
android:pathPattern="/..*" />

<data android:pathPattern="/..*/" />

但它仍然匹配 http://example.com/something/else .

我怎样才能排除这些?

最佳答案

不幸的是,可用于 pathPattern 标记的通配符非常有限,目前无法通过纯 xml 实现您想要的。

这是因为一旦您接受 "/.*" 一切都会被接受(包括斜线)。由于我们无法提供不被接受的数据标签,因此唯一的方法是检查您 Activity 中的数据。以下是完成您的目标的方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Uri data = getIntent().getData();

Log.d("URI", "Received data: " + data);
String path = data.getPath();

// Match only path "/*" with an optional "/" in the end.
// * to skip forward, backward slashes and spaces
Pattern pattern = Pattern.compile("^/[^\\\\/\\s]+/?$");
Matcher matcher = pattern.matcher(path);
if (!matcher.find()) {
Log.e("URI", "Incorrect data received!");
finish();
return;
}

// After the check we can show the content and do normal stuff
setContentView(R.layout.activity_main);

// Do something when received path data is OK
}

list 中的 Activity 如下所示:

<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"
android:host="example.com"
android:pathPattern="/.*"/>
</intent-filter>
</activity>

如果您不希望您的 Activity 检查数据是否正确,您将不得不更改您的要求。

关于android - 将 URI 与 <data> 匹配,例如 AndroidManifest 中的 http ://example. com/something,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24876676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com