【问题标题】:Using ActionChooser with Attachment for email and Facebook-App in Android在 Android 中使用带有附件的 ActionChooser 来处理电子邮件和 Facebook-App
【发布时间】:2012-01-27 00:42:46
【问题描述】:

我尝试在我的 Android 应用中为图片创建一个“发布”按钮,该按钮适用于 Facebook 应用和电子邮件。

这是我的代码(imagePath 类似于“/sdcard/myapp/image.jpg”

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("image/jpeg");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+imagePath));

sendIntent.putExtra(Intent.EXTRA_TEXT, "Enjoy the photo");
startActivity(Intent.createChooser(sendIntent, "Email:"));

这非常适合发送带有附件的电子邮件,但不适用于 Facebook 应用程序。 如果我正在使用

    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(imagePath));

Facebook 的发布工作 - 但电子邮件附件不再发送。

任何想法可以为两者做些什么?

【问题讨论】:

    标签: android facebook email


    【解决方案1】:

    如果有人感兴趣...我以间接的方式解决了它:

        File imageFile = new File(imagePath);
        String url = "";
        try {
             url = Media.insertImage(getContentResolver(), imageFile.getAbsolutePath(), imageFile.getName(), imageFile.getName());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));
    

    【讨论】:

      【解决方案2】:

      mseo 的意思是,在您的手机上安装(免费)facebook 应用程序!

      我刚刚将 mseo 的代码改编为我自己的应用程序,并通过 Gmail 和 Facebook 分享了一张图片。我看到了一个提供商列表,其中包括 Facebook(我的手机上安装了 FB 应用程序,否则我不会看到 FB 选项),还有 Blogger、Wordpress、Twitter、Dropbox 等。

      已编辑:发送现有文件,更好:

      sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(imageFile));
      

      已编辑:这适用于电子邮件和 Dropbox。它也适用于 Facebook(通过官方的 Facebook Android 应用程序),但由于某种原因,原始图片在发布到 Facebook 后会从 SD 卡中删除。这已被其他人报告,可能是由于 Facebook 应用程序中的错误。我通过在共享之前备份图像并在需要时从备份中恢复它来解决它。

      【讨论】:

        【解决方案3】:

        您可能必须定义一个 ContentProvider,它将您的 file:// Uri 转换为 content:// Uri。

        你可以试试这个:http://code.google.com/p/openintents/source/browse/trunk/FileManager/src/org/openintents/filemanager/FileManagerProvider.java

        【讨论】:

        • 感谢您采用这种方法 - 这也可以。但我以更简单的方式解决了它。
        【解决方案4】:

        在我的应用程序中,我需要通过电子邮件、gmail、txt 和 facebook 分享一些消息。 我正在使用这段代码

        意图 sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "body"); sendIntent.setType("text/plain"); startActivity(Intent.createChooser(sendIntent, "分享方式"));

        此代码为我提供了一个选项列表,其中包含通过电子邮件、gmail 和消息传递的共享。 如何在此列表中添加 facebook?

        【讨论】:

        • 如何安装facebook应用程序?我在我的应用程序中包含了 facebook for android sdk。能详细点吗?
        【解决方案5】:

        Facebook 期望 url 图像。 这解释了为什么代码

        sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(imagePath));
        

        工作正常。使用 url facebook 正在获取 imiage 数据并将其存储到服务器。

        【讨论】:

          猜你喜欢
          • 2021-03-06
          • 1970-01-01
          • 2023-04-08
          • 1970-01-01
          • 2012-03-24
          • 1970-01-01
          • 2017-04-11
          • 2018-07-24
          • 1970-01-01
          相关资源
          最近更新 更多