gpt4 book ai didi

java - Android 共享 Intent 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:14 25 4
gpt4 key购买 nike

我正在尝试共享图像,它似乎仅在安装了 SD 卡或手机没有 SD 卡插槽时才有效。但是当我卸下 SD 卡时,它不会共享,并且给了我两个错误。

  • 致命异常:main java.lang.NullPointerException:uriString

  • 插入图像失败java.io.FileNotFoundException:没有这样的文件或目录

由于某种原因,它还保存了正在共享的图像,似乎无法弄清楚为什么。

            private Button button;

public void onCreate {

init();
setupView();
}

public void setupView(){
button.setOnClickListener(this);
}



public void init() {
button = (Button) findViewById(R.id.button);
}




@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.button: {
startShare();
break;
}




public void startShare() {
Bitmap b =BitmapFactory.decodeResource(getResources(),R.drawable.m1);
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/*");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(getContentResolver(),
b, "Title", null);
Uri imageUri = Uri.parse(path);
share.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(share, "Share"));
}

最佳答案

尝试使用此代码来共享可绘制图像:

 Uri imageUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
getResources().getResourcePackageName(R.drawable.ic_launcher) + '/' +
getResources().getResourceTypeName(R.drawable.ic_launcher) + '/' +
getResources().getResourceEntryName(R.drawable.ic_launcher));

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/*");
share.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(share, "Share"));

关于java - Android 共享 Intent 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39482450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com