如何在android中使用意图过滤器获取数据

Posted

技术标签:

【中文标题】如何在android中使用意图过滤器获取数据【英文标题】:how to get data by using intent filter in android 【发布时间】:2019-01-09 19:20:45 【问题描述】:

我正在尝试生成特定活动的 url,因为我想通过我的应用程序共享这个特定的 url,当我们单击该 url 时,我的活动应该被打开......我尝试了很多方法,但没有得到结果。我将意图过滤器添加到我的清单文件中的活动中

<activity
            android:name="com.bodaty.samyata.samyata4.customer_service.Contacts"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <!--<category android:name="android.intent.category.ALTERNATIVE" />-->
            <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="www.samyata.com"
                />
        </intent-filter>
    </activity>

在我的活动的 oncreate 中,我添加了这样的内容

Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
Log.e("dataaa", String.valueOf(data));

我想生成 url 以打开特定的产品详细信息页面,但我无法生成 url ...我正在尝试打印数据但数据始终为空 为什么有人可以帮助我

08-02 05:48:18.049 13864-13864/com.bodaty.samyata.samyata4 E/dataaa: null
08-02 05:48:40.488 13864-13864/com.bodaty.samyata.samyata4 E/dataaa: null

【问题讨论】:

是点击链接的时候吗? 显示代码开始您的活动以打开 URL。 我实际上认为意图过滤器创建了一个用数据指定的链接,我想通过添加路径来生成动态链接,但 oncreate 中的数据为空 我是新手,请帮助我找到一种我想通过 WhatsApp 分享链接的方式,当我点击什么应用程序时,我的活动应该打开,所以我正在尝试生成指向我的活动的链接我应该生成链接....我看到了很多帖子,每个帖子都向我展示了上面的代码,但数据总是空的谁能说我这样做的程序 @sontruongit 我想生成指向我的活动的链接,但我无法创建 【参考方案1】:

试试这个:

Intent intent = getIntent();
Bundle bundle = intent.getExtras();
Uri uri = (Uri)bundle.get(Intent.EXTRA_STREAM);

https://developer.android.com/training/sharing/receive 的更多信息

【讨论】:

【参考方案2】:

如果您的应用程序处理接收文本内容、任何类型的单个图像或任何类型的多个图像,您的清单将如下所示:

<activity android:name=".ui.MyActivity" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND_MULTIPLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>

Please refer , How to handle the incoming content

【讨论】:

以上是关于如何在android中使用意图过滤器获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Android 上的意图中获取额外数据?

Android在使用requestLocationUpdates()时如何从意图中获取信息

Android:如何获取服务接收到的意图?

如何收听消息阅读事件

如何在android报警时从待处理的意图中获取requestCode

android - 如何使用意图选择视频文件并获取它的视频