2014-05-03 69 views
0

我有這樣的代碼,我在另一個SOAndroid的 - 與Instagram的和Google+等共享圖像

Bitmap icon = myBitmap; 
    Intent share = new Intent(Intent.ACTION_SEND); 
    share.setType("image/jpeg"); 

    ContentValues values = new ContentValues(); 
    values.put(Images.Media.TITLE, "title"); 
    values.put(Images.Media.MIME_TYPE, "image/jpeg"); 

    ContentResolver contentResolver = getContentResolver(); 
    Uri uri = contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values); 

    OutputStream outstream = null; 
    try { 
     outstream = getContentResolver().openOutputStream(uri); 
     icon.compress(Bitmap.CompressFormat.JPEG, 100, outstream); 
     outstream.close(); 
    } catch (Exception e) { 
     System.err.println(e.toString()); 
    } 

    share.putExtra(Intent.EXTRA_STREAM, uri); 
    startActivity(Intent.createChooser(share, "Share Image")); 

然而發現,它會在調用一個例外插入 - 也許是因爲我沒有SD卡在我的手機。我無法確定,因爲似乎沒有生成日誌。當我遍歷代碼時,似乎我正在逐步完成註釋,所以在我的Eclipse安裝中會出現錯誤。 (通常日誌生成和步進工作正常。)

理想情況下,我想代碼不依賴於外部存儲(我相信Instagram和Google+圖像共享需要從我可以讀取的),但哪個會如果SD卡不可用,則回退到本地應用程序存儲。我知道這樣做會限制股票期權,但是直到最好。

後來,我需要將其與攝像機功能合併,這就是爲什麼當前輸入爲myBitmap

回答

2

您需要遵循Google提供的本指南。由於Android 4.0標準包含此功能,因此實施起來應該不難。

http://developer.android.com/training/sharing/shareaction.html

+0

看起來有趣 - 謝謝!我也需要它來處理舊的Android API版本,但似乎它可能是兼容的。 (儘管如此,我仍然對更多解決方案感興趣。) – Tom