- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的应用程序中,我希望能够使用 ACTION_SEND Intent 通过电子邮件、Facebook 或 Messenger (MMS) 发送保存在我本地 SD 卡上的图片。使用我拥有的代码,我可以成功地将图片作为附件通过电子邮件发送,但是当我选择 Facebook 时,我收到错误消息,“加载照片时发生错误”,当我尝试选择 Messenger 时,它说,“抱歉,您不能添加这个将图片添加到您的消息中”。
这是我的代码:
File pic = new File(Environment.getExternalStorageDirectory()+ File.separator + "images" + File.separator + "picture.jpg");
Uri pngUri = Uri.fromFile(pic);
Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);
picMessageIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
picMessageIntent.setType("image/jpeg");
picMessageIntent.putExtra(Intent.EXTRA_STREAM, pngUri);
startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));
有谁知道我需要更改什么才能使此代码与 Messenger 和 Facebook 一起使用?
最佳答案
要使用 MMS 发送图像,您必须获取媒体提供商的 URI,文件路径中的 URI 不起作用(我以前遇到过这个问题)。对于 Facebook,我不知道如何使用 ACTION_SEND 发送图片,因为我使用 Facebook SDK 发布状态和发送照片(这是一种更好的方法,因为你不需要依赖之前安装过 facebook 的手机).
protected void sendMMS(final String body, final String imagePath) {
MediaScannerConnectionClient mediaScannerClient = new MediaScannerConnectionClient() {
private MediaScannerConnection msc = null;
{
msc = new MediaScannerConnection(getApplicationContext(), this);
msc.connect();
}
public void onMediaScannerConnected() {
msc.scanFile(imagePath, null);
}
public void onScanCompleted(String path, Uri uri) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra("sms_body", body);
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setType("image/png");
startActivity(sendIntent);
msc.disconnect();
}
};
}
关于android - 使用 Android ACTION_SEND 通过 Messenger 和 Facebook 发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893788/
我需要共享音频(音乐)文件,但是当我使用以下代码时,却得到了具有不同名称的文件,这不好。因为它是音乐文件,所以我需要保留所有属性,例如艺术家,文件的标题和名称。有什么办法吗? fina
我似乎无法弄清楚这一点:如何响应 ACTION_VIEW 和 ACTION_SEND Intent ?我将它们放在我的 list 文件中(它们出现在应用程序的下拉列表中)。我需要做的是响应这些 Int
当使用 ACTION_SEND 发送邮件时,有没有办法检查结果是否成功? 这是我的代码示例: Intent emailIntent = new Intent(android.content.Inte
我将应用中的一些对象保存为具有自定义文件扩展名 (.xyz) 的文件,这些文件可以保存到其他应用中。现在,例如,一旦我在 Dropbox 上有这样一个文件并尝试导出它,它应该会显示我的应用程序。现在让
我正在使用 Android Intent与 ACTION_SEND和 EXTRA_STREAM通过 ContentProvider 共享生成的 PNG .这非常适用于电子邮件/GMail、Flickr
首先我看到了我遇到的同样的问题,在这里解决了。但即使那里有答案,我也没有解决。而且我找不到添加评论的地方。只回答,作为一个答案,我不确定人们是否会收到通知。这就是为什么我要创建一个新问题。对不起:S
我正在使用: Intent i = new Intent(Intent.ACTION_SEND); i.setType("image/jpeg"); (...) 分享在我的应用程序中生成的图像。我想将
我正在使用一个带有 ACTION_SEND 的 Intent,我需要分享不同的文本。我需要为 Gmail 发送文本,我需要为 Twitter 发送其他文本。取决于应用程序。能否在应用发送分享文本前获取
问题的简短版本.. 是否可以启动 ACTION_SEND Intent 以共享光盘上的文件,但共享使用的文件名与光盘上的文件名不同? Intent shareIntent = new Intent(I
每次我创建一个从我的应用程序发送电子邮件的操作时,它都会提示许多选项,包括 QR 客户端... 有没有办法强制只通过电子邮件客户端发送? 发送邮件代码 String rec[] = { owner.e
我想打开 native 应用程序发送短信,但应该已经有电话号码了。我找到了 ACTION_SEND 但是当我调用我的函数时返回错误: 04-26 11:59:15.991: ERROR/Android
当您使用 ACTION_SEND Intent (使用额外的 EXTRA_STREAM)将文件附加到电子邮件时,电子邮件应用程序是否将该附加文件复制到它自己的位置?我的应用程序创建了一个文件并将其附加
我正在尝试将文本文件附加到电子邮件中,但出现了一个奇怪的错误,希望有人能帮助我。当用户从选择器中选择 gmail 应用程序时,它工作正常,但如果他们选择内置邮件应用程序,他们会看到提示“无法附加文件”
我已使用以下代码在其他应用程序中分享我的内容: Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Inte
我已经成功地能够使用 ACTION_SEND Intent ,当在图库中按下共享按钮时,它会在列表中显示我的应用程序。我的应用程序基本上将所选图片发送到我的计算机,不需要用户进一步输入。而不是在列表中
我正在接收来自不同应用程序的使用默认共享机制 (ACTION_SEND) 发送的意向。 如果它是一个文件——我需要复制它。 我不需要文件的完整路径,因为我可以直接用流打开它。 InputStream
我知道如何使用 ACTION_SEND 分享 A 文本。 Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SE
我正在使用 ACTION_SEND 从我的应用中的内容提供商发送文件作为 GMail 中的电子邮件附件。这很好用,只是我无法以编程方式指定附件的文件名。当我的 URI 是 content://my.d
我需要从我的 Activity 发送彩信,但我不知道在没有 Intent 的情况下该怎么做。有 Intent ,我发帖是这样的: Intent sendIntent = new Intent(Inte
我有以下代码: Uri screenshotUri = Uri.fromFile(file); Intent intent = new Intent(Intent.ACTION_SEN
我是一名优秀的程序员,十分优秀!