2012-08-05 56 views
2

我看到關於此問題的其他問題,嘗試了他們的答案,但不工作。 我試圖使用developer.android.com的第二種方法。 (第二個白色子彈)。 我用適當的權限將圖像保存到應用程序內部存儲器。 圖像(位圖)已成功保存,但我無法將其添加到新的意圖中,以便共享。 這裏是我的代碼:無法附加位圖圖像。 Android

 Intent shareIntent = new Intent(Intent.ACTION_SEND); 
     shareIntent.setType("*/*");//Attach all types (images/text) 

     FileOutputStream fos; 

     try{ 
     fos = openFileOutput(myfilename, Context.MODE_WORLD_READABLE); 
     mybitmap.compress(Bitmap.CompressFormat.PNG, 90, fos); 
     fos.flush(); 
//Image is stored successfully (checked data/data/mypackage/files/myfilename) 

      Uri uri = Uri.fromFile(getFileStreamPath(myfilename)); 
      shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    } 
    catch (Exception e){ 
     // noth 
     //Log.e(TAG, e.getStackTrace().toString()); 
    } 

     shareIntent.putExtra(Intent.EXTRA_TEXT, "some text also"); 

     return shareIntent; 
    } 

應用程序說,不能附加媒體項目。 Gmail似乎附加了項目,但郵件發送時什麼都不顯示!

另外,uri.getPath返回我: /數據/數據/ mypackage的/文件/ mYfILEname的, 這是正確的

任何想法? 謝謝!

編輯: 使用SD卡的修改代碼。 ,但仍沒有得到它的工作:

 File imgDir; 
     if (android.os.Environment.getExternalStorageState().equals(
       android.os.Environment.MEDIA_MOUNTED)) 
imgDir = new File(
       android.os.Environment.getExternalStorageDirectory(), 
       ".MyAppName/Images"); 
     else imgDir = MyActivity.this.getCacheDir(); 
     if (!imgDir.exists()) imgDir.mkdirs(); 

     File output = new File(imgDir, myFilename); 

     OutputStream imageFileOS; 
     try{ 
      Uri uriSavedImage = Uri.fromFile(output); 
      imageFileOS = getContentResolver().openOutputStream(
        uriSavedImage); 
      bitmapBookCover.compress(Bitmap.CompressFormat.PNG, 90, 
        imageFileOS); 


      imageFileOS.flush(); 
      imageFileOS.close(); 
//Again image successfully saved 

      shareIntent.putExtra(Intent.EXTRA_STREAM, uriSavedImage); 
     } 
     catch (Exception e){ 
      // noth 
     } 
+0

我認爲這是不可能的從試過內部存儲 – eladr 2012-08-05 07:01:25

+0

武官文件與SD卡,仍然不能得到它的工作 – Paschalis 2012-08-05 07:29:39

+0

@Paschalis你成功了嗎? – Huaying 2016-11-04 09:55:02

回答

0

請嘗試usiing 使用setData()的代替putExtra(),這裏android developer site - intent set data

+0

我附上文字和圖片。它不起作用。嘗試shareIntent.setDataAndType(uri,Intent.EXTRA_STREAM),圖像和文本:shareIntent.setDataAndType(bookInfo,Intent.EXTRA_TEXT),沒有運氣 – Paschalis 2012-08-05 07:47:49