共享功能不起作用

时间:2016-04-24 12:29:15

标签: android android-studio share

我为共享行动编写了此代码。

我想让它分享文字+位图。

它不会给我一个错误 - 它只是没有做任何事情。

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..."));

提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,ACTION_SEND Activity不要求同时支持EXTRA_TEXTEXTRA_STREAMThe docs表示您可以包含这两个额外内容之一(“get * Extra可以包含EXTRA_TEXT或EXTRA_STREAM字段,包含要发送的数据”。)

其次,EXTRA_STREAM is documented as

  

内容:包含与Intent关联的数据流的URI,与ACTION_SEND一起使用以提供正在发送的数据。

您没有提供Uri。您正在提供Bitmap。您需要创建ContentProvider来提供此Bitmap,或将其写入文件并使用FileProvider