android: 如何读取 intent uri 额外数据

android: How to read intent uri extra data

我需要(如果可能的话)像这样处理 "url"(在电子邮件中我需要打开我的应用程序 ("wics")):

http://wics/resetPassword/myemail@mydomain.ext/FOOBARTOKEN

我的 AndroidManifest.xml

里有这个
<activity android:name=".ResetPasswordActivity">
            android:label="@string/app_name">
            <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:scheme="http"
                    android:host="wics"/>
            </intent-filter>   
</activity>

如何在我的 ResetPasswordActivity 中获得 "myemail@mydomain.ext" 和 "FOOBARTOKEN"?

我已插入此代码:

Intent intent = getIntent();
Uri uri = (Uri)intent.getData();

可是现在呢?拆分 "uri" 字符串并获取第 3 个元素和第 4 个元素 ?

好吧,你可以这样做。

<meta-data android:name="my_url" android:value="http://wics/resetPassword/myemail@mydomain.ext/FOOBARTOKEN" />

然后在代码中获取它。

ApplicationInfo appInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = appInfo.metaData;

String url = bundle.getString("my_url");
Uri uri = Uri.parse(url);

然后按“/”分隔符拆分。

String[] arr =  url.split("/");

然后你需要做的就是遍历 arr 并找到你的话。 有什么意义吗?