我必须在点击按钮时附加带有短信的图像文件我使用此代码
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视图,它将直接显示附加文件的消息意图。
答案 0 :(得分:2)
使用implicit
意图无法完成您要查找的内容。因为这就是Android系统设计用于处理隐式意图的方式。如果您希望特定应用程序处理您的意图,则必须使它们explicit
,即指定必须处理意图的组件。但是,当您使用explicit
意图来处理任何情况(例如您的情况)时,当目标设备中不存在特定组件(即应用程序)时,您的应用程序很有可能会中断。 Android正被几家原始设备制造商采用,因此他们每个人都倾向于用他们自己的替换库存消息应用程序。因此,在一台设备上运行的功能可能无法正常工作。
如果您想达到您想要的效果,那么您可能需要在各种设备上获取Messaging应用程序列表(您可以从模拟器本身找到该应用程序的Android应用程序组件名称)。并使用PackageManager
查找组件是否存在。如果是,则开始和explicit
意图,您将不会收到IntentChooser
。如果该组件不存在,则发送implicit
意图。
您可以从here了解有关意图的更多信息。
Determining if an Activity exists on the current device? - 这篇文章将帮助您查找目标组件是否存在。