2017-08-05 3 views
0

私はこのコードを使用して、自分の通話ログアプリケーションからWhatsAppを直接呼び出しています。これは正常に機能しますが、電話番号に有効な国コードが含まれている場合にのみ有効です。たとえば、919789006685でWhatsAppを呼び出すと動作しますが、97890 06685で呼び出すと動作しません。 91は国コードです。AndroidからコードからWhatsappを呼び出す予定

私のアプリはコールログから電話番号を読み込むので、格納されている電話番号の形式に関係なく、有効な連絡先電話番号でWhatsAppを呼び出すことができます。ユーザーは国コードを含まない連絡先に番号を格納することができます。だからこの問題の回避策はありますか?私のアプリ内で使用

コード:ここで

Intent sendIntent = new Intent("android.intent.action.MAIN"); 
sendIntent.setComponent(new ComponentName("com.whatsapp", "com.whatsapp.Conversation")); 
String waNumber = contactPhone.replace("+", ""); 
sendIntent.putExtra("jid", waNumber + "@s.whatsapp.net"); 
startActivity(sendIntent); 
+0

https://stackoverflow.com/questions/38655458/android-make-whatsapp-call –

+0

ありがとう:ここではサンプルコードです。しかし、私はIDを持っていると仮定して、WhatsAppの会話チャットウィンドウを連絡先に対して開いています。あなたは助けてもらえますか? – user3140417

答えて

0
Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
     sharingIntent.setType("text/html"); 
     sharingIntent.setPackage("com.whatsapp"); 
     sharingIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("<p>https://play.google.com/store/apps/details?id=" + context.getPackageName() + "</p>")); 
     context.startActivity(Intent.createChooser(sharingIntent, "Share using")); 
+0

ありがとうございます。しかし、一般的なアクションピッカーではなく、特定の連絡先電話番号のWhatsAppを開きたいとします。 – user3140417

+0

コンタクトIDを指定してWhatsApp会話チャットウィンドウを開くことをお勧めします。ありがとう。 – user3140417

0

は完全なソリューションです。自分のアプリから同じことを試している人にとっては有用かもしれません。リンクについてはSourav Gangulyに感謝します。

android-make whatsapp call

  1. 選択した連絡先のIDを盗ん。
  2. すべての生のコンタクトのために、すべてのRAW連絡先IDの連絡先IDのContactsContract.RawContacts
  3. クエリからContactsContract.Dataテーブルを取得し、接触は、いくつかの電話番号を持っているかもしれないので、列ContactsContract.Data._ID
  4. を取得WhatsAppでアクティブな場合は、連絡先のContactsContract.Data.DATA3をさらにチェックして、一致させる電話番号をフィルタすることができます。
  5. WhatsApp会話を開始するには、vnd.android.cursor.item/vnd.com.whatsappを使用します。プロファイルとvnd.android.cursor.item/vnd.com.whatsapp.voip.call WhatsApp呼び出しを開始する場合
  6. ステップ3のIDを使用してWhatsAppを起動します。

    String data = "content://com.android.contacts/data/" + dataId; 
          String type = "vnd.android.cursor.item/vnd.com.whatsapp.profile"; 
          Intent sendIntent = new Intent(); 
          sendIntent.setAction(Intent.ACTION_VIEW); 
          sendIntent.setDataAndType(Uri.parse(data), type); 
          sendIntent.setPackage("com.whatsapp"); 
    startActivity(sendIntent); 
    
関連する問題