【问题标题】:android: How to read intent uri extra dataandroid:如何读取意图 uri 额外数据
【发布时间】:2017-03-01 22:45:50
【问题描述】:

我需要(如果可能的话)处理这样的“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”字符串并获取第 3td 和第 4 个元素?

【问题讨论】:

    标签: android intentfilter


    【解决方案1】:

    你可以这样做。

    <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 并找到您的单词。 有意义吗?

    【讨论】:

    • 请回答为已接受。谢谢。总是愿意分享知识。
    • 感谢@Caspain。我做了类似你的评论,但我认为这不是正确的方法。再次感谢。
    猜你喜欢
    • 2021-04-10
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多