我为共享操作编写了这段代码。
我希望它共享文本+位图。
它不会给我一个错误 - 它只是不做任何事情。
case R.id.share:
int myinfoPos = info.position;
Movie myMovie= myMovies.get(myinfoPos);
int myMovieID=myMovie.id;
DBCommands db = new DBCommands(con);
Cursor c = db.getmovieById(myMovieID);
String text = c.getString(c.getColumnIndex(DBConstants.SUBJECT));
String getBit = c.getString(c.getColumnIndex(DBConstants.PHOTOENCODE));
Bitmap myBitmapAgain = db.decodeBase64(getBit);
//Uri pictureUri = db.decodeBase64(myBitmapAgain);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, text);
shareIntent.putExtra(Intent.EXTRA_STREAM, myBitmapAgain);
shareIntent.setType("image/*");
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
con.startActivity(Intent.createChooser(shareIntent, "Share images..."));
提前谢谢你。
首先,不需要ACTION_SEND
Activity
同时支持 EXTRA_TEXT
和 EXTRA_STREAM
。文档表明您可以包含这两个附加内容之一(" get*Extra 可以有一个EXTRA_TEXT或EXTRA_STREAM字段,其中包含要发送的数据")。
其次,EXTRA_STREAM
被记录为:
内容:包含与意图关联的数据流的 URI,与ACTION_SEND一起使用以提供正在发送的数据。
您没有提供Uri
。您正在提供Bitmap
.您需要创建一个ContentProvider
来提供此Bitmap
,或者将其写入文件并使用FileProvider
。