
VIEw content = findVIEwByID(R.ID.layoutHome);content.setDrawingCacheEnabled(true);Bitmap bitmap = content.getDrawingCache();file sdCardDirectory = Environment.getExternalStorageDirectory();file image = new file(sdCardDirectory,"temp.png");// Encode the file as a PNG image.fileOutputStream outStream;try { outStream = new fileOutputStream(image); bitmap.compress(Bitmap.CompressFormat.PNG,100,outStream); outStream.flush(); outStream.close();} catch (fileNotFoundException e) { e.printstacktrace();} catch (IOException e) { e.printstacktrace();}String url = "file://" + sdCardDirectory.toString() + "Images/temp.png";Intent sharingIntent = new Intent(androID.content.Intent.ACTION_SEND);sharingIntent.setType("image/*");String shareBody = "Here is the share content body";sharingIntent.putExtra(androID.content.Intent.EXTRA_SUBJECT,"Subject Here");sharingIntent.putExtra(androID.content.Intent.EXTRA_STREAM,url);sharingIntent.putExtra(androID.content.Intent.EXTRA_TEXT,shareBody);startActivity(Intent.createChooser(sharingIntent,"Share via")); logcat的:
10-10 14:20:16.631: W/Bundle(16349): Key androID.intent.extra.STREAM expected Parcelable but value was a java.lang.String. The default value <null> was returned.10-10 14:20:16.658: W/Bundle(16349): Attempt to cast generated internal exception:10-10 14:20:16.658: W/Bundle(16349): java.lang.classCastException: java.lang.String cannot be cast to androID.os.Parcelable10-10 14:20:16.658: W/Bundle(16349): at androID.os.Bundle.getParcelable(Bundle.java:1171)10-10 14:20:16.658: W/Bundle(16349): at androID.content.Intent.getParcelableExtra(Intent.java:4140)10-10 14:20:16.658: W/Bundle(16349): at androID.content.Intent.migrateExtraStreamToClipData(Intent.java:6665)10-10 14:20:16.658: W/Bundle(16349): at androID.content.Intent.migrateExtraStreamToClipData(Intent.java:6650)10-10 14:20:16.658: W/Bundle(16349): at androID.app.Instrumentation.execStartActivity(Instrumentation.java:1410)10-10 14:20:16.658: W/Bundle(16349): at androID.app.Activity.startActivityForResult(Activity.java:3351)10-10 14:20:16.658: W/Bundle(16349): at androID.app.Activity.startActivityForResult(Activity.java:3312)10-10 14:20:16.658: W/Bundle(16349): at androID.app.Activity.startActivity(Activity.java:3522)10-10 14:20:16.658: W/Bundle(16349): at androID.app.Activity.startActivity(Activity.java:3490)10-10 14:20:16.658: W/Bundle(16349): at com.example.simplegraph.EconActivity$DrawerItemClickListener.onItemClick(EconActivity.java:182)10-10 14:20:16.658: W/Bundle(16349): at androID.Widget.AdapterVIEw.performItemClick(AdapterVIEw.java:298)10-10 14:20:16.658: W/Bundle(16349): at androID.Widget.AbsListVIEw.performItemClick(AbsListVIEw.java:1086)10-10 14:20:16.658: W/Bundle(16349): at androID.Widget.AbsListVIEw$PerformClick.run(AbsListVIEw.java:2855)10-10 14:20:16.658: W/Bundle(16349): at androID.Widget.AbsListVIEw.run(AbsListVIEw.java:3529)10-10 14:20:16.658: W/Bundle(16349): at androID.os.Handler.handleCallback(Handler.java:615)10-10 14:20:16.658: W/Bundle(16349): at androID.os.Handler.dispatchMessage(Handler.java:92)10-10 14:20:16.658: W/Bundle(16349): at androID.os.Looper.loop(Looper.java:137)10-10 14:20:16.658: W/Bundle(16349): at androID.app.ActivityThread.main(ActivityThread.java:4745)10-10 14:20:16.658: W/Bundle(16349): at java.lang.reflect.Method.invokeNative(Native Method)10-10 14:20:16.658: W/Bundle(16349): at java.lang.reflect.Method.invoke(Method.java:511)10-10 14:20:16.658: W/Bundle(16349): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)10-10 14:20:16.658: W/Bundle(16349): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:553)10-10 14:20:16.658: W/Bundle(16349): at dalvik.system.NativeStart.main(Native Method)
问题:
当我尝试与gmail共享时,gmail被强制关闭.当我尝试与Facebook分享时,Facebook默默地拒绝该帖子.消息传递信使,但是空的.共享无需添加图像即可工作.
其次,EXTRA_STREAM应该包含一个Uri,而不是一个String.
第三,既然您知道正确的MIME类型(image / png),请使用它而不是通配符.
第四,永远不要两次建立相同的路径.在这里,您以正确的方式创建文件图像,然后忽略该值.
因此,转储String url行,将image / *替换为image / png,然后修改:
sharingIntent.putExtra(androID.content.Intent.EXTRA_STREAM,url);
成为:
sharingIntent.putExtra(androID.content.Intent.EXTRA_STREAM,Uri.fromfile(file));总结
以上是内存溢出为你收集整理的Android共享图片不起作用全部内容,希望文章能够帮你解决Android共享图片不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)