检索要在MMS中发送的可绘制资源

布兰登·拉维尼(Brandon Lavigne)

我正在尝试开始发送带有从资源中选择的图像的彩信的意图。如果我尝试从手机的存储中检索图像,此代码似乎可以正常工作,但是如果我尝试从可绘制资源中检索图像,则很难找到文件。我假设这与为获取资源而未正确创建Uri有关。

public class MainActivity extends AppCompatActivity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void sendImage(View v)
    {
        Log.d("MainActivity", "send image button clicked");

        Intent mmsIntent = new Intent(Intent.ACTION_SEND);
        mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://com.example.android.imagesms/drawable/smile.jpg"));
        mmsIntent.setType("image/jpg");
        startActivity(mmsIntent);
    }
}

如果我更换

mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://com.example.android.imagesms/drawable/smile.jpg"));

其中的代码指定了手机存储中的位置:

mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File("/storage/emulated/0/DCIM/Camera/smile.jpg")));

正确检索文件,并且意图启动没有问题。

尼特什

原因是,没有其他应用程序可以访问或读取您应用程序中的资产文件或可绘制文件。此类文件的范围仅限于您的应用程序。因此,您必须将所需的文件从可绘制文件夹手动写入设备的公共存储,然后激发意图。这样做是为了使该文件可用于所有其他应用程序(在您的情况下为消息应用程序)。


将图片从drawble资源保存到sdcard:

假设您的可绘制对象中有一个图像,即ic_launcher。然后从该图像中获取一个位图对象,例如:

Bitmap bm = BitmapFactory.decodeResource( getResources(), R.drawable.ic_launcher);

可以使用以下方法检索SD卡的路径:

String extStorageDirectory = Environment.getExternalStorageDirectory().toString();

然后单击以下按钮保存到sdcard:

File file = new File(extStorageDirectory, "ic_launcher.PNG");
    outStream = new FileOutputStream(file);
    bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
    outStream.flush();
    outStream.close();

不要忘记添加android.permission.WRITE_EXTERNAL_STORAGE权限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检索要在查询中使用的 ID,Django

来自分类Dev

检索要从Flask发送的GridFS中的文件?

来自分类Dev

检索要在Struts中插入数据库的多选择列表值

来自分类Dev

从可绘制资源加载TextureRegion

来自分类Dev

资源是颜色还是可绘制的?

来自分类Dev

$资源更新在URL angularjs中发送参数

来自分类Dev

无法使用Codeigniter检索要通过电子邮件发送的数据

来自分类Dev

检索要通过网络发送的ID3D11Texture2D数据

来自分类Dev

检索要通过网络发送的ID3D11Texture2D数据

来自分类Dev

想要在php中发送和接收json数据

来自分类Dev

为什么要在jwt标头中发送算法

来自分类Dev

毕加索从其URI加载可绘制资源

来自分类Dev

从资源中删除可绘制对象

来自分类Dev

如何更改可绘制资源中的线长?

来自分类Dev

可绘制资源导致应用打包错误

来自分类Dev

Android Studio:无法指定可绘制资源

来自分类Dev

可绘制资源的Android动态变量

来自分类Dev

如何以编程方式绘制特定的可绘制资源?

来自分类Dev

如何在GET请求中发送密码以访问REST资源

来自分类Dev

如何在Android中发送帖子数据并检索响应正文?

来自分类Dev

如何使用Ajax从一个HTML页面中使用数据来检索要在另一HTML页面上使用的数据

来自分类Dev

从字符串设置背景可绘制资源

来自分类Dev

滑行占位符矢量可绘制资源未找到异常

来自分类Dev

在Fresco的SimpleDraweeView中加载可绘制图像资源

来自分类Dev

如何检测按钮背景资源(可绘制)的Android?

来自分类Dev

哪里可以获取棒棒糖的SDK可绘制资源

来自分类Dev

从Android中的位图/可绘制获取资源ID

来自分类Dev

下载图像并存储为可绘制资源

来自分类Dev

Android:如何创建椭圆形的可绘制资源?

Related 相关文章

  1. 1

    检索要在查询中使用的 ID,Django

  2. 2

    检索要从Flask发送的GridFS中的文件?

  3. 3

    检索要在Struts中插入数据库的多选择列表值

  4. 4

    从可绘制资源加载TextureRegion

  5. 5

    资源是颜色还是可绘制的?

  6. 6

    $资源更新在URL angularjs中发送参数

  7. 7

    无法使用Codeigniter检索要通过电子邮件发送的数据

  8. 8

    检索要通过网络发送的ID3D11Texture2D数据

  9. 9

    检索要通过网络发送的ID3D11Texture2D数据

  10. 10

    想要在php中发送和接收json数据

  11. 11

    为什么要在jwt标头中发送算法

  12. 12

    毕加索从其URI加载可绘制资源

  13. 13

    从资源中删除可绘制对象

  14. 14

    如何更改可绘制资源中的线长?

  15. 15

    可绘制资源导致应用打包错误

  16. 16

    Android Studio:无法指定可绘制资源

  17. 17

    可绘制资源的Android动态变量

  18. 18

    如何以编程方式绘制特定的可绘制资源?

  19. 19

    如何在GET请求中发送密码以访问REST资源

  20. 20

    如何在Android中发送帖子数据并检索响应正文?

  21. 21

    如何使用Ajax从一个HTML页面中使用数据来检索要在另一HTML页面上使用的数据

  22. 22

    从字符串设置背景可绘制资源

  23. 23

    滑行占位符矢量可绘制资源未找到异常

  24. 24

    在Fresco的SimpleDraweeView中加载可绘制图像资源

  25. 25

    如何检测按钮背景资源(可绘制)的Android?

  26. 26

    哪里可以获取棒棒糖的SDK可绘制资源

  27. 27

    从Android中的位图/可绘制获取资源ID

  28. 28

    下载图像并存储为可绘制资源

  29. 29

    Android:如何创建椭圆形的可绘制资源?

热门标签

归档