2016-08-01 65 views
1

再试一次,当我的内容分享到WhatsApp的,它返回到与Toast通知共享页“共享失败,请再试一次”共享失败,请(只在WhatsApp的)

我的代码

if (url.startsWith("share://")) { 
      Uri requestUrl = Uri.parse(url); 
      String pContent = requestUrl.toString().split("share://")[1]; 
      Toast toast=Toast.makeText(getApplicationContext(),pContent, Toast.LENGTH_LONG); 
      toast.setMargin(50,50); 
      toast.show(); 
      StringBuilder sb = new StringBuilder(); 
      String [] parts = pContent.split("<br />"); 
      for (int i = 0; i < parts.length; i++) { 
       String part = parts[i]; 
       sb.append(part); 
       sb.append('\n'); 
      } 
      Intent share = new Intent(); 
      share.setAction(Intent.ACTION_SEND); 
      share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      share.putExtra(android.content.Intent.EXTRA_TEXT, (Serializable) sb); 
      share.setType("*/*"); 
      try { 
      startActivity(Intent.createChooser(share, "Share On")); 
      } catch (android.content.ActivityNotFoundException ex) { 
       toast = Toast.makeText(getApplicationContext(), "whatsapp not installed", Toast.LENGTH_LONG); 
       toast.setMargin(50,50); 
       toast.show(); 
      } 
      return true; 

和我的logcat

08-01 14:37:42.081 1472-1514/com.example.myactivity I/MaliEGL: [Mali]window_type=1, is_framebuffer=0, errnum = 0 
08-01 14:37:42.081 1472-1514/com.example.myactivity I/MaliEGL: [Mali]surface->num_buffers=4, surface->num_frames=3, win_min_undequeued=1 
08-01 14:37:42.081 1472-1514/com.example.myactivity I/MaliEGL: [Mali]max_allowed_dequeued_buffers=3 
+0

除了WhatsApp的,其工作像聚会,邮件,加息,文本等其它应用程序,我编译的SDK和目标SDK是23,我在物理测试设备android one – Shubham

+0

嗨哈里,迄今为止的解决方案? –

+0

嗨@RishabhBhatia我得到的解决方案,它为我工作只需按照此链接http://stackoverflow.com/a/38697846/5753575 – Shubham

回答

0

在我身边,它的工作细下方的Android 6.0设备。我在Android 6.0上遇到了这个问题。问题只是“外部存储权限未被用户授予”。 现在在启动共享意向之前检查外部存储权限...

3

有同样的问题 - 解决方案是在定义MIME类型时:尝试共享一个意图与文字和附加图像设置sharingIntent.setType("*/*")将工作正常,但如上所述共享只有文本时会失败。

解决方案:如果仅共享文本设置sharingIntent.setType("text/plain")

public void sendShareToWhatsAppIntent() { 

    //setup intent: 
    Intent sharingIntent = new Intent(Intent.ACTION_SEND); 

    //setup image extra, if exists: 
    Bitmap picBitmap = getMyBitmap(); 
    if (picBitmap != null) { 
     String url = MediaStore.Images.Media.insertImage(context.getContentResolver(), picBitmap, "", ""); 
     sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url)); 
     sharingIntent.setType("*/*"); 
    } else { 
    //if no picture, just text set - this MIME 
     sharingIntent.setType("text/plain"); 
    } 

    //setup sharing message 
    String message = "My Message - hey whatsapp!" 

    sharingIntent.putExtra(Intent.EXTRA_TEXT, message.toString()); 

    //target WhatsApp: 
    sharingIntent.setPackage("com.whatsapp"); 


    if (sharingIntent.resolveActivity(context.getPackageManager()) != null) { 
     startActivity(sharingIntent); 
    } else { 
     Log.w(TAG, "sendShareIntent: cant resolve intent"); 
     Toast.makeText(context, "whatsapp not installed", Toast.LENGTH_SHORT).show(); 
    } 

} 
相关问题