2016-04-24 80 views
0

我为共享操作编写了此代码。共享功能不起作用

我希望它能够共享文本+位图。

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

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

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

二,EXTRA_STREAM is documented as

内容:URI保持与意图相关联的数据,与ACTION_SEND用于提供数据的一个流被发送。

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