从 Intent.createChooser 获取选择的应用程序

2024-03-08

我正在尝试捕捉结果Intent.createChooser了解用户选择共享哪个应用程序。

我知道有很多与此相关的帖子:

  • 如何知道用户在使用意图选择器时选择了哪个应用程序? https://stackoverflow.com/questions/10613953/how-to-know-which-application-the-user-chose-when-using-an-intent-chooser?rq=1
  • https://stackoverflow.com/questions/6137592/how-to-know-the-action-choosed-in-a-intent-createchooser?rq=1 https://stackoverflow.com/questions/6137592/how-to-know-the-action-choosed-in-a-intent-createchooser?rq=1
  • 如何从 startActivityForResult(Intent.createChooser(fileIntent, "Open file using..."), APP_PICKED); 获取用户选择? https://stackoverflow.com/questions/4417019/how-to-get-the-user-selection-from-startactivityforresultintent-createchooserf
  • 在 Android 上捕获和拦截 ACTION_SEND 意图 https://stackoverflow.com/questions/8350531/capturing-and-intercepting-action-send-intents-on-android

但这些帖子有些旧了,我希望可能有一些新的进展。

我正在尝试实施一个分享行动 http://developer.android.com/training/sharing/shareaction.html而不让它出现在菜单中。最接近我想要的解决方案是由点击点击点击 http://clickclickclack.wordpress.com/2012/01/03/intercepting-androids-action_send-intents/谁建议实施自定义应用程序选择器,但这似乎很严厉。另外,似乎可能有一些 Android 挂钩来获取所选的应用程序,例如ActivityChooserModel.OnChooseActivityListener https://android.googlesource.com/platform/frameworks/base/+/b9f286e1a31bfc13e9c0e9635294742d558014c6/core/java/android/widget/ShareActionProvider.java.

我的 MainActivity 中有以下代码,但是onShareTargetSelected方法永远不会被调用。

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, shareMessage());
    sendIntent.setType("text/plain");

    Intent intent = Intent.createChooser(sendIntent, getResources().getText(R.string.share_prompt));

    ShareActionProvider sap = new ShareActionProvider(this);
    sap.setShareIntent(sendIntent);
    sap.setOnShareTargetSelectedListener(new ShareActionProvider.OnShareTargetSelectedListener() {
        @Override
        public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
            System.out.println("Success!!");
            return false;
        }
    });

    startActivityForResult(intent, 1);

从 API 级别 22 开始,这实际上是可能的。在 Android 5.1 中,有一个方法(createChooser (Intent target, CharSequence title, IntentSender sender) http://developer.android.com/reference/android/content/Intent.html#createChooser%28android.content.Intent,%20java.lang.CharSequence,%20android.content.IntentSender%29添加),允许接收用户选择的结果。当您提供IntentSender to createChooser,发送者将通过选择器对话框收到通知ComponentName由用户选择。它将在额外命名的文件中提供EXTRA_CHOSEN_COMPONENT http://developer.android.com/reference/android/content/Intent.html#EXTRA_CHOSEN_COMPONENT整数IntentSender那是notified http://developer.android.com/reference/android/content/Intent.html#EXTRA_CHOSEN_COMPONENT_INTENT_SENDER.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Intent.createChooser 获取选择的应用程序 的相关文章

  • 记录中嵌套 Spring 配置(ConfigurationProperties)

    如何绘制一张地图application yaml将嵌套属性配置为 Java 中类似的记录结构 例如 如果我们有以下 yaml foo bar something 42 baz otherThing true color blue 所需的记录
  • 无法在 Vaadin Maven 项目上运行 mvn vaadin:compile

    当我运行命令 mvn vaadin compile 时出现此错误 INFO BUILD FAILURE INFO INFO Total time 1 039s INFO Finished at Thu Mar 20 11 35 00 CET
  • Spring方法获取给定类型的所有bean

    我试图从一个相同类型的豆子中获取所有豆子FileSystemXmlApplicationContext 我正在使用factory getBeansOfType SomeType class 但我注意到它只返回顶级 bean 是否有任何其他方
  • 在 Android 应用程序中读取 CSV 文件

    我正在开发一个概念验证应用程序 以便我可以在我正在制作的更大的应用程序中实现该功能 我对 Java 和 Android 开发有点陌生 但希望这个问题不会太简单或太复杂 基本上 我试图从 CSV 文件中读取字符串列表 并使其可用于在应用程序的
  • 如何在应用程序级别管理只读数据库连接

    我们使用的是Java Spring Ibatis MySql 有没有办法利用这些技术在应用程序级别管理只读连接 我希望在只读 MySql 用户的基础上添加额外的保护层 如果 BasicDataSource 或 SqlMapClientTem
  • JPA 的 commit() 方法是否使实体分离?

    我现在一直在搜索JPA实体生命周期 但现在 关于实体生命周期存在一些缺失的点 我在 stackoverflow 的一篇帖子中找到了下图 请记住该图已被投票 根据此图 当我们持久化实体时 它就变成了托管实体 好的 没问题 当我们提交时 数据会
  • 如何使用正则表达式提取子字符串

    我有一个字符串 其中有两个单引号 特点 单引号之间是我想要的数据 如何编写正则表达式从以下文本中提取 我想要的数据 mydata some string with the data i want inside 假设您想要单引号之间的部分 请
  • registerForActivityResult TakePicture 未触发

    我尝试使用新的 registerForActivityResult 来拍照 我可以打开相机意图 但拍照后 未触发回调 并且我在 logcat 上看不到任何有关 Activity Result 或错误的信息 我也尝试了RequestPermi
  • 如何在android中格式化长整型以始终显示两位数

    我有一个倒计时器 显示从 60 到 0 的秒数 1 分钟倒计时器 当它达到 1 位数字 例如 9 8 7 时 它显示 9 而不是 09 我尝试使用String format B 02d B x 我将 x 从 long 转换为字符串 它不起作
  • 使用当前日期时间的 RecyclerView 的动态节标题

    我将使用 RecyclerView 作为节标题 我想在 SQLite 数据库中插入每个日期和时间数据时创建节标题 我按照以下链接获取了此解决方案 但没有成功 请参考下图 对于上面的图像数据 使用以下代码或部分是静态的 List
  • 如何使用Android平板模拟器?

    我想开始 Android 平板电脑应用程序开发 我已经使用 1024X600 模拟器创建了一个新的 avd 并启动了 但是当我单击任何应用程序时如何从模拟器返回 是否有任何特定的 api 可用于开发 android 平板电脑应用程序 或者我
  • Android相对布局放置问题

    我在 XML 中为列表项创建相对布局以用于 ListView 中的一系列项目时遇到问题 我已经尝试了几个小时 并且正在撕扯我的头发 试图让它看起来像我想要的那样 但无法让所有东西都出现在正确的位置 而不是重叠或错位 我可以获取第一张图像和接
  • 使用 lambda 或 Stream API 合并流以生成交替序列

    我有一些按预期返回 Stream 的代码 但也许可以用某种类型的 lambda 或 stream 操作替换它 而不是耗尽 a 中的迭代器while loop 它只是一种交替流中元素的方法first and second当其中一个元素耗尽时停
  • JJWT依赖混乱

    我继承了一个java项目 在POM xml中有这个
  • 如何将 logcat 输出复制到剪贴板?

    我正在 Eclipse 中开发 Android 应用程序 如何将 logcat 消息发送到剪贴板 Select the message and press ctrl c You can save it in a text file usin
  • 如何使用 Maven 创建新的 Eclipse RCP 项目?

    如何使用 Maven 创建新的 Eclipse RCP 项目 最好是m2eclipse http maven apache org eclipse plugin html 我读到有一个关于 Eclipse 的 Maven 插件 Maven
  • Spring:在属性文件中定义@RequestMapping值

    是否可以定义a的值 RequestMapping在 Spring 中通过在属性文件中定义注释 实际上 我做了类似的事情 Controller RequestMapping xxx public class MyController 但我想存
  • MongoDB 和 upsert 问题

    我有两个模型 1 资源假期 Id private String resourceID private List
  • 使用 Java Swing 平均成绩 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个家庭作业 我一直在编码 我以
  • 如何在JdbcTemplate中执行多批量删除?

    我想一次删除多个数据库条目 仅当 3 个字段匹配 此处 姓名 电子邮件 年龄 时 才应删除每个条目 如果我只想删除单个属性 我会选择 String sql DELETE FROM persons WHERE email IN JdbcTem

随机推荐

  • 流构建器在导航后未更新

    我正在使用流生成器来检测用户是否登录 return StreamBuilder
  • DropzoneJS 和 Laravel - 输出表单验证错误

    当您将鼠标悬停在 Dropzone 中丢弃的文件中的 X 上时 我试图输出表单验证错误 我得到什么 我怎样才能使object Object从表单验证中输出实际的错误消息 我可以警告错误消息 但将鼠标悬停在 x 上时实际上无法显示错误消息 我
  • 编辑 RichTextBox Run 元素而不拆分为多个 Run 元素 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个 WPF 应用程序RichTextBox 文本框中的文本通过跨度以编程方式构建并运行到一个段落 每个句子都是一个
  • 中继器中的 ASP.NET RadioButtonList?

    aspx 文件
  • 使用路由时将 match param 和 props 传递到 React 组件中

    我有一个功能性反应组件 想要为我的组件中选定的人呈现一些属性 所以我首先绘制一个简单的列表 其中包含每个人的链接 props persons map person i gt return li person name li 然后我制定路线
  • String 和 Char 类型在 .NET 中如何存储在内存中?

    我需要存储一个语言代码字符串 例如 en 它始终包含 2 个字符 将类型定义为 String 还是 Char 更好 private string languageCode vs private char languageCode 或者还有其
  • 在网络应用程序中显示文件类型图标?

    在桌面应用程序中 您通常可以获取特定文件类型的底层操作系统图标并将其显示给用户 在网络应用程序中 我无法使用此类功能 因此看起来我可能需要提供自己的图标集 有谁知道有哪些针对常见图标类型的经过良好许可的免费图标集 我找到了一个github上
  • 处理 AJAX 请求上的 SAML 重定向

    我有几个 AngularJS 应用程序 全部使用 Spring Java 和 SAML 2 0 进行 SSO 利用 Spring Security SAML 扩展 我的 SSO ID 提供商是 OpenAM 一切运行良好 但是 我遇到了一种
  • 是否应该将依赖项注入比需要的更多“级别”?

    我正在使用 SOLID 原则编写 C ASP NET MVC Web 应用程序 我写了一个ViewModelService 这取决于AccountService and a RepositoryService 所以我将这两个服务注入到Vie
  • numpy 数组的缓存装饰器

    我正在尝试为具有 numpy 数组输入参数的函数制作一个缓存装饰器 from functools import lru cache import numpy as np from time import sleep a np array 1
  • 如何将自定义包添加到 Dymola/Modelica 的启动路径中?

    我有一个自定义包 我发现自己在 Dymola 模型中重复使用该包 并且我想将此包放在一个公共目录中 每当我启动 Dymola 时都会自动加载该目录 我当前的策略是在加载我正在处理的模型时加载自定义包 然后保存总计 这并不优雅 因为自定义包的
  • 如何将轴移动到图表中心?

    我需要在原点位于屏幕中心 或中心附近的某个位置 但不一定在中心 的坐标系上绘制一个函数 并且我需要绘制轴 以便它们在原点交叉 轴也应该有标签和抽动以及箭头 我不知道如何有效地做到这一点 到目前为止 在我的代码中 我手动设置了抽动的偏移量 并
  • phpMyAdmin 抛出 #2002 无法登录 mysql 服务器 phpmyadmin

    我已经在本地计算机上安装了MySQL服务器企业版5 1 现在我想安装phpMyAdmin 但它不起作用 我已将 phpMyAdmin 解压到我的服务器根目录并浏览到 localhost phpMyAdmin setup index php
  • 如何使用 wkhtmltopdf 在页眉/页脚 html 中进行页码编号?

    我正在开发一个电子发票系统 我们的功能之一是生成发票的 PDF 并邮寄它们 我们有多个发票模板 稍后还会创建更多模板 因此我们决定使用 HTML 模板 生成 HTML 文档 然后将其转换为 PDF 但我们面临着 wkhtmltopdf 的一
  • ios 标签栏自定义图像

    我在工作ios我需要定制的应用程序tabbar像是this http postimage org image jxm57t89j 首先我创建了5个viewcontrollers导航控制器中的每一个 然后把它们放进去tabbbarcontro
  • Symfony onFlush Doctrine 监听器

    嗨 我有一个 onFlush 监听器
  • 在新窗口中打开图像

    如何使用其在新窗口中打开图像id function swipe var largeImage document getElementById largeImage largeImage style display block largeIm
  • 更改Android自定义SurfaceView的大小

    我正在尝试为 Android 应用程序创建 2D 游戏引擎 我已经关注了本教程 http www droidnova com 2d tutorial series part ii 772 html 这对于创建全屏显示效果很好 但我不想要这样
  • servicestack ormlite 中的分页

    我正在寻找一种在 ormlite 中实现分页的好方法 我发现了另一种question https stackoverflow com questions 15705419 passing params expression results
  • 从 Intent.createChooser 获取选择的应用程序

    我正在尝试捕捉结果Intent createChooser了解用户选择共享哪个应用程序 我知道有很多与此相关的帖子 如何知道用户在使用意图选择器时选择了哪个应用程序 https stackoverflow com questions 106