2016-04-24 2 views
0

Я написал этот код для акции.Функция 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...")); 

Заранее спасибо.

ответ

0

Во-первых, нет необходимости в ACTION_SENDActivity для поддержки как EXTRA_TEXT, так и EXTRA_STREAM. The docs указывают, что вы можете включить одну из этих двух дополнительных функций («get * Extra может иметь поле EXTRA_TEXT или EXTRA_STREAM, содержащее данные для отправки»).

Во-вторых, EXTRA_STREAM is documented as:

Содержание: URI, удерживая поток данных, связанных с Намерении, используемых с ACTION_SEND, чтобы предоставить данные об их отправке.

Вы не предоставляете Uri. Вы предоставляете Bitmap. Вам необходимо создать ContentProvider для обслуживания этого Bitmap или записать его в файл и использовать FileProvider.

Смежные вопросы