2016-10-22 4 views
1

は、スタックオーバーフローが、これが機能することを全会一致で同意しているようだ:Androidのシェア機能していない、

Uri uri = Uri.parse("smsto:" + "<number>"); 
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "YOOOH"); 
// sendIntent.setType("text/plain"); 
sendIntent.setPackage("com.whatsapp"); 
startActivity(sendIntent); 

.setType(「text/plainの」)した場合;私が与えた番号のチャットにwhatsappを開くだけですが、私がそれをコメントアウトしなければ何も起こりません。このコードでは

+0

あなたが特にこの 'sendIntent.setPackage( "com.whatsapp")を実行してのWhatsAppを使用することを言及しているので;' –

+0

は、[この]を参照してください(http://stackoverflow.com/a/42186169/3952238)だから答え。 – dvc

答えて

0

変化と最後の行がsendIntent.setType

Uri uri = Uri.parse("smsto:" + "<number>"); 
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "YOOOH"); 
sendIntent.setType("text/plain"); 

// this line helps to open the chooser dialog 
startActivity(Intent.createChooser(sendIntent, getResources().getString(R.string.share))); 
+0

答えを編集しました **行を削除しました** sendIntent.setpackage( "com.whatsapp"); –

+0

R.string.share_using? –

+0

はシステムにする必要がありますR.string.shareは答えを編集しました –

0

のコメントを削除、追加ルックは、ユーザーが のWhatsAppをインストールしていない場合は、1つはまた、ケースを扱っていることスニペット。

PackageManager pm=getPackageManager(); 
       try { 
        Intent intent = new Intent(Intent.ACTION_SEND); 
        intent.setType("text/plain"); 
        String text = "YOUR TEXT HERE"; 
        PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA); 
        //Check if package exists or not. If not then code 
        //in catch block will be called 
        intent.setPackage("com.whatsapp"); 
        intent.putExtra(Intent.EXTRA_TEXT, text); 
        startActivity(Intent.createChooser(intent, "Share with")); 

       } catch (PackageManager.NameNotFoundException e) { 
        Toast.makeText(MainActivity.this, "WhatsApp not Installed", Toast.LENGTH_SHORT) 
          .show(); 
       } 
関連する問題