2016-08-01 20 views
1

(のみのWhatsAppに)再試行してください、それはトースト通知でページを共有するために戻っ私のコード共有は私がの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; 

を「共有が失敗した、もう一度やり直してください」失敗しました私の側のAndroid 6.0デバイス以下に正常に動作し、その中

と私の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

を設定した場合、そのハングアウト、メール、ハイキング、テキストなどのような他の用途のために働いて、私のコンパイルSDKおよびターゲットSDKは私が物理的にテストしてい、23ですデバイスアンドロイド1 – Shubham

+0

こんにちはハリー、これまでの解決策は? –

+0

こんにちは@RishabhBhatia私は解決策を得て、それは私のために働いたちょうどこのリンクに従いますhttp://stackoverflow.com/a/38697846/5753575 – Shubham

答えて

0

。私はAndroid 6.0でこの問題に直面していました。 共有の意図を開始する前に外部ストレージのアクセス許可を確認してください...

3

同じ問題がありました - 解決策はMIMEタイプを定義することでした:共有しようとするときテキストの意図と添付の画像設定sharingIntent.setType("*/*")は正常に動作しますが、上記のようにテキストのみを共有すると失敗します。

ソリューション:共有するテキストだけがのWhatsApp以外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(); 
    } 

} 
関連する問題