gpt4 book ai didi

Android从收到的共享 Intent 中获取应用程序的包名

转载 作者:行者123 更新时间:2023-12-05 00:01:24 24 4
gpt4 key购买 nike

在我的 android 应用程序中,我已经在我的一个 Activity 中注册了 Intent 过滤器 android.intent.action.SEND 以从其他应用程序接收数据。

        <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" />
<data android:mimeType="application/pdf" />
<data android:mimeType="text/x-vcard" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />

<category android:name="android.intent.category.DEFAULT" />

<data android:mimeType="image/*" />
<data android:mimeType="application/pdf" />
</intent-filter>

当使用共享 Intent 从其他应用与我的应用共享数据时,此 Activity 会接收到 Intent 。我想知道与我的应用程序共享数据的应用程序包名称。

我试过下面的代码,但它总是返回 null。

final String packageName = this.getCallingPackage()

有什么方法可以使用我收到的 Intent 获取与我的应用程序共享数据的应用程序包名称?

最佳答案

如果共享 Intent 是使用 ShareCompat.IntentBuilder 创建的它将包含额外的 EXTRA_CALLING_PACKAGE .
但大多数应用程序不提供此信息。如果存在额外值,您不应将其用于任何安全关键功能,因为发件人可以自由提供他们喜欢的任何值。

关于Android从收到的共享 Intent 中获取应用程序的包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32771304/

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