2012-05-10 83 views
0

嗨,所以我想發送彩信中的SD卡圖像(PNG)。我正在使用ACTION_SEND意圖,但它似乎沒有工作。Android:發送彩信與SD卡上的圖片

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra("sms_body", "Sent using Spootur"); 
sendIntent.setType("image/png"); 
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(imagePath)); 
startActivityForResult(sendIntent, SEND_ACTIVITY); 

我知道的ImagePath具有/mnt/sdcard/Spootur/Pictures/6799abd6-df22-4017-89e1-d9e529790fd8.png的值,它指向現有的文件。

當選擇菜單出現時,我選擇了我的消息應用程序(Handcent),但它給了我一個「對不起,您無法將此圖片添加到您的消息」錯誤。我嘗試過使用其他應用程序,並且我得到的壓倒性結果是我給它的資源是「不受支持的文件類型」。我不知道爲什麼會發生這種情況,因爲我明確地將MIME類型設置爲.png圖像。

任何想法?下面是一些logcat的日誌,各種應用所具有的煩惱:

電子郵件:

05-10 00:29:35.752: W/ActivityManager(343): Trying to launch com.android.email/.activity.MessageCompose 
05-10 00:29:35.962: I/Database(24487): sqlite returned: error code = 0, msg = Recovered 12 frames from WAL file /data/data/com.android.email/databases/webview.db-wal 
05-10 00:29:35.972: I/Database(24487): sqlite returned: error code = 0, msg = Recovered 26 frames from WAL file /data/data/com.android.email/databases/webviewCache.db-wal 
05-10 00:29:36.072: W/System.err(24487): at com.android.email.activity.MessageCompose.addAttachment(MessageCompose.java:6886) 
05-10 00:29:36.072: W/System.err(24487): at com.android.email.activity.MessageCompose.addAttachment(MessageCompose.java:6750) 
05-10 00:29:36.072: W/System.err(24487): at com.android.email.activity.MessageCompose.addAttachment(MessageCompose.java:7112) 
05-10 00:29:36.072: W/System.err(24487): at com.android.email.activity.MessageCompose.initFromIntent(MessageCompose.java:9160) 
05-10 00:29:36.072: W/System.err(24487): at com.android.email.activity.MessageCompose.onCreate(MessageCompose.java:854) 
05-10 00:29:36.102: W/System.err(24487): at com.android.email.Email.startServiceIfNeed(Email.java:659) 
05-10 00:29:36.102: W/System.err(24487): at com.android.email.Email.isServiceConnected(Email.java:723) 
05-10 00:29:36.102: W/System.err(24487): at com.android.email.Email.callWhenServiceConnected(Email.java:791) 
05-10 00:29:36.102: W/System.err(24487): at com.android.email.Email.registerListener(Email.java:883) 
05-10 00:29:36.102: W/System.err(24487): at com.android.email.Email.registerListener(Email.java:879) 
05-10 00:29:36.102: W/System.err(24487): at com.android.email.combined.SevenUtils.addListener(SevenUtils.java:35) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Controller.addSevenListener(Controller.java:283) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Controller.addResultCallback(Controller.java:275) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.activity.MessageCompose.onResume(MessageCompose.java:2457) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Email.startServiceIfNeed(Email.java:659) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Email.callWhenServiceConnected(Email.java:797) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Email.registerListener(Email.java:883) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Email.registerListener(Email.java:879) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.combined.SevenUtils.addListener(SevenUtils.java:35) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Controller.addSevenListener(Controller.java:283) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.Controller.addResultCallback(Controller.java:275) 
05-10 00:29:36.112: W/System.err(24487): at com.android.email.activity.MessageCompose.onResume(MessageCompose.java:2457) 
05-10 00:29:36.132: D/InputTransport(343): Input channel constructed: name='40710c08 com.android.email/com.android.email.activity.MessageCompose (server)', ashmemFd=288, receivePipeFd=336, sendPipeFd=328 
05-10 00:29:36.132: D/InputTransport(343): Input channel constructed: name='40710c08 com.android.email/com.android.email.activity.MessageCompose (client)', ashmemFd=290, receivePipeFd=320, sendPipeFd=337 
05-10 00:29:36.132: D/InputTransport(343): Input channel destroyed: name='40710c08 com.android.email/com.android.email.activity.MessageCompose (client)', ashmemFd=290, receivePipeFd=320, sendPipeFd=337 
05-10 00:29:36.132: D/InputTransport(24487): Input channel constructed: name='40710c08 com.android.email/com.android.email.activity.MessageCompose (client)', ashmemFd=74, receivePipeFd=75, sendPipeFd=76 
05-10 00:29:36.243: I/WindowManager(343): CREATE SURFACE Surface(name=com.android.email/com.android.email.activity.MessageCompose, identity=1887, mNativeSurface=0) IN SESSION [email protected]: pid=24487 format=-1 flags=0x0/Window{40710c08 com.android.email/com.android.email.activity.MessageCompose paused=false} 
05-10 00:29:36.353: I/ActivityManager(343): Displayed com.android.email/.activity.MessageCompose: +604ms 

消息:

05-10 00:28:18.887: D/Mms/ConversationComposer(24350): [main][end] initComposeMessage ------ 
05-10 00:28:18.917: V/Mms/ConversationComposer(24350): [main]getComposeMessageStatus(),state=0 
05-10 00:28:18.917: V/Mms/ComposeMessage(24350): [main]initMessageList() 
05-10 00:28:18.987: V/Mms/ComposeMessage(24350): [main]loadMessageContent() 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.ui.MessageUtils.isAnimatedImage(MessageUtils.java:2265) 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.data.WorkingMessage.setAttachment(WorkingMessage.java:601) 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.ui.ComposeMessage.addImage(ComposeMessage.java:6756) 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.ui.ComposeMessage.addMedia(ComposeMessage.java:6894) 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.ui.ComposeMessage.addMedia(ComposeMessage.java:6961) 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.ui.ComposeMessage.access$7500(ComposeMessage.java:198) 
05-10 00:28:19.007: W/System.err(24350): at com.android.mms.ui.ComposeMessage$45.run(ComposeMessage.java:4680) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.data.WorkingMessage.changeMedia(WorkingMessage.java:2202) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.data.WorkingMessage.setAttachment(WorkingMessage.java:658) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.ui.ComposeMessage.addImage(ComposeMessage.java:6756) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.ui.ComposeMessage.addMedia(ComposeMessage.java:6894) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.ui.ComposeMessage.addMedia(ComposeMessage.java:6961) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.ui.ComposeMessage.access$7500(ComposeMessage.java:198) 
05-10 00:28:19.007: E/Mms/media(24350):  at com.android.mms.ui.ComposeMessage$45.run(ComposeMessage.java:4680) 
+0

ü可以確認,如果該文件可以在烏拉圭回合的應用程序至少 – the100rabh

+0

是可以打開,打開文件(PNG圖像)分別不會導致任何問題。 –

回答

1

我最終找到了解決方案:它在尋找一個文件,不是內容流或直接URI。這使得它爲我工作:通過應用程序

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra("sms_body", "Sent using Spootur"); 
sendIntent.setType("image/png"); 
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(imagePath))); 
startActivityForResult(sendIntent, SEND_ACTIVITY); 

希望這可以幫助別人