2017-07-27 8 views
0

私は非常に多くのソリューションを試しましたが、私のアプリで特定のwhatsapp連絡先にメッセージを送信するのにまだ成功しませんでした。ここに私のコードは次のとおりです。WhatsAppを通じて特定の連絡先にメッセージを送るandroid

Intent sendIntent = new Intent("android.intent.action.MAIN"); 
       sendIntent.setAction(Intent.ACTION_SEND); 
       sendIntent.setType("text/plain"); 
       sendIntent.putExtra(Intent.EXTRA_TEXT, "Hey"); 
       sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(smsNumber) + "@s.whatsapp.net"); 
       sendIntent.setPackage("com.whatsapp"); 
       mContext.startActivity(sendIntent); 

それはちょうどいない連絡先の名前、プロフィールPICと古い変換と新しい会話のような特定の連絡先のチャットウィンドウを開いています。

これを解決するために私を助けてください。スクリーンショットを添付することもできます。

enter image description here

答えて

1

私はあなたがこのようにしたいと思います。

private void openWhatsApp() { 
     String text = message.getText().toString(); 
     if(whatsappInstalledOrNot("com.whatsapp")){ 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("whatsapp://send?text="+text+"&phone="+mobileNumber.getText().toString())); 
      startActivity(browserIntent); 
     }else { 
      Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
private boolean whatsappInstalledOrNot(String uri) { 
     PackageManager pm = getPackageManager(); 
     boolean app_installed = false; 
     try { 
      pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); 
      app_installed = true; 
     } catch (PackageManager.NameNotFoundException e) { 
      app_installed = false; 
     } 
     return app_installed; 
    } 

これが役に立ちます。

+0

注釈: 'whatsappInstalledOrNot()'は、より適切に 'isWhatsappInstalled'という名前にする必要があります。 –

+1

提案をありがとう。 –

+0

@Amrish Kakadiya私は、その国のコードで番号を受け付けるだけで、それはまた、whatsappの連絡先リスト内の特定の連絡先を検索する時間がかかることを発見しました。 –

0
Intent sendIntent = new Intent("android.intent.action.MAIN"); 
     sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.Conversation")); 
     sendIntent.putExtra(Intent.EXTRA_TEXT, "Hey"); 
     sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators("91xxxx008686")+"@s.whatsapp.net"); 
//phone number without "+" prefix (countrycode & contact number without '+') 

     startActivity(sendIntent); 

「会話」クラスから古い会話を取得する設定コンポーネントが欠落しています。

関連する問題