2016-04-24 16 views
0

Ich habe diesen Code für eine Freigabe Aktion geschrieben.Share-Funktion funktioniert nicht

Ich möchte es Text + Bitmap teilen.

Es gibt mir keinen Fehler - es tut einfach nichts.

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

Vielen Dank im Voraus.

Antwort

0

Zunächst ist es nicht erforderlich, dass ACTION_SENDActivity sowohl EXTRA_TEXT als auch EXTRA_STREAM unterstützt. The docs gibt an, dass Sie eines dieser beiden Extras hinzufügen können ("get * Extra kann entweder ein EXTRA_TEXT- oder EXTRA_STREAM-Feld enthalten, das die zu sendenden Daten enthält").

Zweitens EXTRA_STREAM is documented as:

A-Gehalt: URI einen Strom von Daten, die mit der Absicht zu halten, mit ACTION_SEND verwendet geschickt, um die Daten zu liefern ist.

Sie liefern keine Uri. Sie stellen eine Bitmap zur Verfügung. Sie müssen ein ContentProvider erstellen, um dieses Bitmap zu dienen, oder es in eine Datei schreiben und FileProvider verwenden.