问题标签 [android-intent-chooser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
822 浏览

android - 为什么`Intent.createChooser(shareIntentWithJpgFileName)` 停止工作?

图像文件不再通过选择器

该代码startActivity(intent.createChooser(shareIntentWithJpgFileName))多年来一直在我的应用程序中运行良好,但大约一个月前我注意到它不再将图像文件传递给用户在选择器对话框中选择的应用程序。我怀疑 Android OS 安全洗牌(再次!),但不知道如何进行。

如果用户在选择器对话框中选择了任意数量的选项,应用程序将打开,但不会显示.jpg意图的一部分。如果用户选择 Google Drive,我会通过它的 toast 得到一个错误提示:

上传失败:请求不包含数据

曾经工作的代码:

另外,我将此作为以下内容的一部分AndroidManifest.xml

这也在AndroidManifest.xml

问题

为什么这停止工作,我怎样才能让它再次工作?

我很乐意维护/更新/修复/更正/删除这个问题,所以如果您因任何原因觉得它不满意,请给我指导。

附录

我将过滤器Logcat仅显示选定的应用程序更改为无过滤器,并且能够查看所有应用程序的日志记录。可能有 50 条左右的行弹出。很难判断哪些项目适用于我开始的意图,但有些项目显然来自我开始的意图(在选择器对话框中选择了 Google Drive)。我选择了一些更有趣的日志条目:

我的下一步是检查“EXTRA_STREAM”,我还没有完成,但我可能接近自己解决这个问题。

0 投票
0 回答
1164 浏览

android - 如何在没有接收方Intent的组件类的情况下处理createChooser的IntentSender

当用户选择要在其上共享图像的应用程序时,我正在尝试处理IntentSenderofIntent.createChooser()做某事。我在这里找到的大多数示例(在下面发布)都需要使用BroadcastReceiver 如下

我对这个解决方案的问题,位于这一行:

这些示例中使用的Intent 构造函数需要我创建一个静态MyReceiver类,所以我有一个类可以传递给构造函数的第二个参数。但是,这会导致一个问题,因为我希望BroadcastReceiver'sonReceive在我的 Fragment 中做一些事情。因此,我更愿意BroadcastReceiver在我的 Fragment 中动态创建一个。

无济于事,我尝试了以下解决方法:

内部MyFragment.kt

内部AndroidManifest.xml

不幸的是,在用户按下选择后,动态BroadcastReceiver函数onReceive()永远不会被调用。几个问题:

  1. 为什么这不起作用?我错过了什么?我是否以某种方式设置IntentIntentFilter不正确?
  2. 甚至可以使用动态BroadcastReceiver来处理IntentSenderofcreateChooser吗?如果没有,我怎样才能创建一个BroadcastReceiver触发某些事情发生的静态MyFragment

资源:

0 投票
1 回答
75 浏览

android - FAB 按钮单击上的自定义操作选择器

我想在 fab 按钮单击事件上显示一种自定义选择器(类似于共享意图选择器)。

问题是它应该包含自定义项目,并为每个显示的项目提供自定义意图操作。我的意思是,我不想包含几个引用打开其他应用程序的意图的项目,而是有一个用于打开相机的自定义相机图像项目,一个用于打开微型录像机的自定义麦克风图像项目,以及用于录制视频和导入的相同项目内存中的文件。这将类似于 Google Drive 中的以下图片:

您知道如何创建此自定义操作选择器吗?

0 投票
1 回答
190 浏览

android - 如何将音频文件共享到多个应用程序

这是我用来发送音频文件的代码,它只将音频文件发送到 WhatsApp,而没有其他应用程序,如 Messenger、Telegram 或 KakaoTalk

0 投票
0 回答
220 浏览

android - 数据的 getContentResolver() 值为 null 但正确接收名称

我无法从所选图像 Uri 中读取数据部分,这发生在某些特定设备 Lg nexus 5 api 6.0.1

所选图像的 Uri

用于从 uri 获取数据的代码

权限处理没有问题,提供了必需的权限。

0 投票
1 回答
555 浏览

android - UPI 隐式意图选择器在红米设备上不起作用

这是我的 upi 隐式意图代码,它使用户可以选择多个支持 upi 的应用程序,并且该代码在我测试过的所有设备和除 Redmi 设备之外的所有版本上都可以正常工作。我的代码不适用于任何 Redmi Note 5 Pro

这是我的代码:

选择器不会仅在 Redmi 设备上打开支持 upi 的应用程序。我已经在 3 种不同的 Redmi note 5 pro 上进行了测试,但没有成功。它没有打开选择器以显示支持 upi 的应用程序。

0 投票
0 回答
200 浏览

android - 如何直接从 Android 中的原始文件夹共享音频文件?

我正在编写一个音板应用程序,该应用程序从 res/raw 文件夹中获取文件并将它们放在一个 gridview 中,每个按钮都有一个按钮。如果我再按一个按钮,我可以得到一个菜单,我可以从中共享音频文件,但是,当我尝试通过 WhatsApp 发送它时,我得到一个没有扩展名的未命名文件。当我在文件管理器中查找时,我找到了一个名为“DOC-20190722-WA0000”的文件。(注意没有扩展名的点)如果我重命名它添加 mp3 扩展名,它可以毫无问题地播放。我宁愿直接发送文件,而不是将文件保存到 sdcard 并共享它。

代码改编自这个答案,但是,正如我之前所说,它只能部分工作

在我的代码中,我最初获取原始文件夹中的文件列表:

然后我在一个适配器中创建一组按钮,这些按钮与原始文件的名称相同,并以与“字段”数组中的文件相同的顺序进行索引。当我长按一个按钮时,我得到按钮的 id 并将其保存在一个变量中:

最后,我得到了按钮的 id,从中我得到了“raw”中 mp3 文件的 id,并将其放入共享意图中:

理论上,它应该以其原始名称发送它,但事实并非如此,所以我正在寻找一种手动设置名称的方法。

0 投票
1 回答
273 浏览

android - 安卓。是否有进入默认应用页面的意图?

我有这段代码可以将我的应用程序设置为默认拨号器:

哪个工作正常。它设置在一个复选框上。但是我希望当用户取消选中它时,打算向我显示“默认应用程序”页面。或者,如果不回退到默认的 android 拨号器。那可能吗?

我试过了:

但它什么也没做。还有“ACTION_APPLICATION_SETTINGS”,但这会转到应用程序页面。我想去默认应用

0 投票
1 回答
70 浏览

android - Pixel3 ACTION_VIEW 不会针对图像以外的其他文件启动

这是我尝试打开从 base64 字符串创建的文件的代码:

我也试过这个,但我仍然得到同样的错误:

错误:

0 投票
1 回答
270 浏览

android - 如何在android中禁用选择器对话框?

我正在使用 NFC 制作应用程序。

每当检测到标签时,都会chooser dialog弹出Complete action using标题和可能的应用程序。

SingleTop我用or掩盖了它SingleTask。但是,它并不总是有效。

似乎我无法真正触摸检测到 NFC 标签后发生的事情,因为它在系统级别上工作。不仅在我的应用程序中。它无处不在。

我找到了一些可以自定义选择器对话框的方法,但是,不适用于 NFC,因为在我的应用程序中,我从未实现过任何关于createChooser().

我尝试为这样的选择器添加更多代码

我得到了同样的结果。我猜它的原因是它在系统级别进行控制。

最好的解决方案是避免在某些特定活动或片段中检测 NFC 标签并控制选择器对话框。