Android 在安卓系统中,如何在不显示Action chosser的情况下通过短信附加图像?

Android 在安卓系统中,如何在不显示Action chosser的情况下通过短信附加图像?,android,action,send,Android,Action,Send,我必须附加一个图像文件和短信按钮点击我使用此代码 final Intent smsIntent = new Intent(android.content.Intent.ACTION_SEND); smsIntent.putExtra("sms_body", "Hello World!"); smsIntent.putExtra("address", "0123456789"); smsIntent.putExtra(Intent.ACTION_ATTACH_DATA,screenshotUri

我必须附加一个图像文件和短信按钮点击我使用此代码

final Intent smsIntent = new Intent(android.content.Intent.ACTION_SEND);
smsIntent.putExtra("sms_body", "Hello World!"); 
smsIntent.putExtra("address", "0123456789");
smsIntent.putExtra(Intent.ACTION_ATTACH_DATA,screenshotUri);
smsIntent.setType("image/png");
startActivity(smsIntent);
但这显示了一个选择器可以选择像Facebook、电子邮件、消息等这样的操作。
但是我不想在chosser视图中看到任何内容,因为它将直接显示带有附加文件的消息意图。

您要查找的内容不能使用
隐式
意图。因为Android系统就是这样设计来处理隐含意图的。如果您想让特定的应用程序处理您的意图,那么您必须将其显式化,即指定一个必须处理意图的组件。但是,如果您使用
explicit
来处理任何情况,例如您的情况,那么当目标设备中不存在特定组件(即应用程序)时,您的应用程序很有可能会崩溃。安卓系统正被几家原始设备制造商采用,因此它们都倾向于用自己的应用程序取代股票消息应用程序。因此,在一台设备上工作的东西在另一台设备上可能不起作用

如果你想实现你想要的,那么你可能必须获得各种设备上的消息传递应用程序列表(你可以从仿真器本身找到股票Android应用程序的组件名称)。并使用
PackageManager
查找组件是否存在。如果是,则启动和
显式
意图,其中您将不会收到
意图选择器
。如果组件不存在,则发送
隐式
意图

您可以从中了解有关意图的更多信息


-这篇文章将帮助您找到目标组件是否存在。

我已经浏览了所有这些链接,但对我没有更多帮助。你知道我在问什么问题吗?我必须在不显示提示的情况下用附件文件显示消息意图。我想,你想使用默认的SMS/电子邮件应用程序吗?这是正确的吗?我们是否将消息意图(来自其他人)设置为动作的默认意图?是否以编程方式发送。使用
Intent.setComponent()
,但这仍然很困难,因为您需要知道目标组件支持哪些额外功能。