我为共享行动编写了此代码。
我想让它分享文字+位图。
它不会给我一个错误 - 它只是没有做任何事情。
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..."));
提前谢谢。
答案 0 :(得分:0)
首先,ACTION_SEND
Activity
不要求同时支持EXTRA_TEXT
和EXTRA_STREAM
。 The docs表示您可以包含这两个额外内容之一(“get * Extra可以包含EXTRA_TEXT或EXTRA_STREAM字段,包含要发送的数据”。)
其次,EXTRA_STREAM
is documented as:
内容:包含与Intent关联的数据流的URI,与ACTION_SEND一起使用以提供正在发送的数据。
您没有提供Uri
。您正在提供Bitmap
。您需要创建ContentProvider
来提供此Bitmap
,或将其写入文件并使用FileProvider
。