问题标签 [android-implicit-intent]

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 回答
99 浏览

java - 使用 Action.SEND 从另一个应用程序接收到隐式意图时显示错误的活动

我有一个包含两个活动的应用程序: MainActivity,其中包含一个 URL 输入字段,用户可以在其中输入 YouTube 视频 URL 并按下提交按钮,以启动第二个活动 VideoActivity,它显示有关此视频的一些信息(从另一个网络服务器)。

该应用程序还具有通过 Youtube 应用程序接收意图的功能。当用户在 Youtube 应用程序中按下分享按钮时,我的应用程序会出现在分享列表中。在 Youtube 应用中按下分享后,MainActivity 应该被带到前面,并且 URL 应该发布在 MainActivity 的 URL 字段中。

但是,这仅在第一次共享时正确发生。如果当用户从 Youtube 应用程序共享时应用程序在后台,他们将被带到最后可见的活动,无论是 MainActivity 还是 VideoActivity,(即使是 MainActivity,URL 也不会发布到 URL 字段中,但该字段仍处于应用程序上次可见时所处的任何状态)。

这是我当前的 AndroidManifest.xml:

这是我的 MainActivity.java 代码:

我认为其他任何文件都不会有助于理解问题。尽管这似乎是许多应用程序创建者应该处理的问题,但我找不到这个问题的答案。如果您觉得我应该添加任何其他信息,请发表评论,并提前感谢您的帮助!

更新:测试表明,在第一次使用 YouTube 的“分享”后(并考虑到应用程序仍处于后台),MainActivity 不再收到任何关于进一步分享的新意图。但是,我的应用程序仍然以某种方式被带到了前台。这让我很困惑。

0 投票
3 回答
8431 浏览

android - queryIntentActivities() 和 resolveActivity() 有什么区别。哪一种是了解现有应用程序的最佳方法?

正如我在 Android 文档中看到的那样,在将用户发送到另一个应用程序时尝试构建隐式意图。这是避免 ActivityNotFoundException 的两种方法。

第一 :

第二个 :

现在我的疑问是有什么区别,我应该使用哪一个?

0 投票
1 回答
77 浏览

android - 处理 Android 隐式活动崩溃

我以这种方式开始隐式活动:

如果此活动完成,我会收到广播,但如果活动崩溃,我什么也看不到,除非它毫无问题地返回第一个活动。

有没有办法知道第二个活动发生了什么?

0 投票
1 回答
626 浏览

android - Intent.setType() 对 android 的 Intent 选择器的影响

当使用 ACTION_SEND 将图像发送到其他应用程序时,使用 Intent.setType("image/*") 和 Intent.setType("image/jpeg") 是否会对 android 的意图选择器显示的应用程序列表产生影响。

理想情况下,我们希望将“png”和“jpeg”图像发送到其他应用程序,并且我们希望 Intent 选择器显示所有可以处理这些图像的应用程序。使用“image/*”的 mimeType 是否会使 Intent 选择器删除可以处理“png”和“jpeg”图像但不能处理其他图像格式的应用程序。

0 投票
1 回答
1524 浏览

android - 向广播接收器发送隐式意图

我正在尝试创建 2 个应用程序。第一个应用程序通过使用 sendBroadcast 的隐式意图发送 imei。下面是第一个应用程序的代码。

}

我创建了另一个应用程序,其中包含一个接收 imei 的广播接收器。下面是application2的代码

我不知道为什么第二个应用程序没有收到任何东西,因为我对 Java 和一般编程完全不熟悉。

先感谢您

0 投票
1 回答
1021 浏览

android - Android O中不调用具有签名权限的Android隐式BroadcastReceiver

BroadcastReceiver在我的第一个应用程序中,我在清单文件中定义了一个自定义权限和一个隐式权限:

这是 TestBroadcastReceiver.java:

在我的第二个应用程序中,我在清单文件中添加了权限:

在这里,我发送广播:

但是在第一个应用程序中没有调用任何内容。我知道我们不能在 android O 及更高版本中使用隐式广播,但根据这里,需要签名权限的广播有一个例外:

需要签名权限的广播不受此限制,因为这些广播仅发送到使用相同证书签名的应用程序,而不是设备上的所有应用程序。

那么如何在 android O 中向我的其他应用发出信号呢?

0 投票
1 回答
375 浏览

android - 如何使用隐式意图但避免“选择一个应用程序来处理此意图”屏幕?

在我的代码中,我想触发一个隐式意图来打开另一个 android 库活动。

可以说很少有应用程序包含相同的库。如果我触发一个隐式意图,用户会看到“选择一个应用程序来处理这个意图”吗?

还是因为所有应用程序都包含相同的库,它才会打开?

0 投票
1 回答
157 浏览

android - Android (API 28) - 在后台接收隐式意图

我对当前的 Android 后台服务可能性感到非常困惑,需要专家的帮助 :)

“xDrip”应用程序通过动作名称“com.eveningoutpost.dexdrip.BgEstimate”的(我猜是隐式的)意图广播其信息。我想收到这些意图。由于不允许将它们放入清单中,因此我在应用程序类的 onCreate() 方法中动态注册了它们。只要应用程序正在运行(即使应用程序未在屏幕上打开),它就可以很好地工作。但是,如果我在应用程序概述中将其滑开,即使我没有取消注册意图,它也不会再收到意图。

我现在的问题是:始终可靠地接收这个(隐式)意图的最合适的方式是什么?那么当用户在应用程序概览屏幕中将应用程序滑开时呢?

干杯!

0 投票
1 回答
105 浏览

android - Android 隐式意图未显示正确的播放 mp4 文件的应用程序列表

我有一个前台服务,它应该启动一个隐含的意图来播放一个 mp4 文件。意图是这样的:

该变量media_uri包含 mp4 文件的 Uri。意图过滤器是这样的:

意图启动应用程序列表,但它们都不能播放 mp4 文件:

在此处输入图像描述

请注意,我安装了一些可以播放 mp4 文件的程序。当我从文件浏览器单击 mp4 文件时,我看到:

在此处输入图像描述

我哪里错了?为什么隐含意图不启动正确的应用程序集来播放 mp4 文件?我是否设置了错误的 MIME 类型?

0 投票
0 回答
105 浏览

android - Android 隐式意图触发媒体播放器,但媒体播放器显示“意图无效”

我制作了一个应用程序,让用户可以选择一个 mp4 文件、一个日期和一个时间。设置后,应用程序将启动一个前台服务,该服务应在时机成熟时使用隐式意图播放媒体文件。

让用户选择媒体文件的代码:

对于在我的手机上运行 API 23 的示例,我从 logcat 得到

这表明 Uri 已成功接收。

现在从前台服务,我播放媒体文件。

再次来自 logcat,

在我的手机上,我看到了可以播放 mp4 文件的应用程序列表。我选择的是内置媒体播放器,可以正常播放mp4文件。现在我得到一个错误。

在此处输入图像描述

从日志猫,

谁能告诉我为什么意图无效?

更新1:

我尝试使用 VLC for Android 运行 API 27 的模拟器。Logcat 抛出一个不同的错误:

更新 2:

我刚刚在我的应用程序中发现了一个可怕的问题。我的应用程序的结构如下:

Activity1 --> 获取媒体 Uri,启动 Activity2

Activity2 --> 用户选择一个日期,启动 Activity3

Activity3 --> 用户选择时间,启动 MyService

MyService --> 在正确的时间使用意图播放媒体的前台服务

现在,在测试中,我发现如果Activity1直接启动MyService(我编程设置了日期和时间),媒体可以正常播放。

但是如果Activity1启动Activity2,而Activity2又直接启动MyService(我再次设置时间),媒体无法播放!!

请记住,我使用与调用 MyService 相同的意图标志调用 Activity2:

这不可避免地是@CommonsWare在此链接中指出的问题。我认为如果我以相同的意图标志开始活动,那么许可将保持有效。但事实并非如此!