2016-04-24 105 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