java - Android如何获取用于分享的应用名称

标签 java android android-intent share

我正在使用以下方法与用户选择的任何应用共享图像。

    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("image/*");
    File imageFileToShare = new File(imagePath);
    shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(imageFileToShare));

    if (!TextUtils.isEmpty(text)) {
        shareIntent.putExtra(Intent.EXTRA_TEXT, text);
    }
    context.startActivity(Intent.createChooser(shareIntent, "Share with").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

这工作正常,但现在我正在尝试获取用户选择用于共享的应用程序的名称。是否有(标准)方法可以做到这一点?

感谢关注。 何塞

最佳答案

在使用 Android 选择器时,Android 6.0 之前的版本不支持此功能。在 Android 6.0+ 上,您可以使用 EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER提供一个 IntentSender,当用户做出选择以及该选择是什么时,它会收到通知。

欢迎您使用 PackageManagerqueryIntentActivities() 找出哪些 Activity 支持您的 shareIntent 并为用户创建您自己的 UI从中选择。然后,因为它是您自己的 UI,您会发现用户选择了什么。

关于java - Android如何获取用于分享的应用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37576765/

相关文章:

java - 内存泄漏——Tomcat、Spring MVC

java - 调用另一个 fragment 时 ListAdapter 错误

android - Xamarin.Android:工具栏未按预期显示

android-intent - 从 native 代码发送广播意图失败

java - Servlet 3.0 AsyncContext 在超时时返回响应

如果没有下载,Java android检查是否安装了Acrobat Reader

java - Lombok - maven 编译失败 "error: cannot access MappedSuperClass"

java - 如何在android中制作一个布局,使其粘在屏幕底部,直到 ScrollView 滚动到它也滚动的某个位置?

android - 从android中的图库获取图像时android中的java.lang.OutOfMemoryError

android - 如何直接从我的 Android 应用程序打开 Google Play 商店?