連絡先の番号がWhatsappに登録されているかどうかを確認するにはどうすればよいですか?

2020-02-14 android class apk whatsapp

しかし、私は国コード付きの番号でこれが必要です(+123 456 78 90で始まるような-これは、連絡先として番号を追加する方法です) この番号にWhatsappがあるかどうかを確認するための関数/クラスが必要です。 Android Studioで作成した.apkにこれが必要です。

Answers

WhatsAppに連絡先番号が登録されているかどうかを確認する適切な方法はありません。しかし、WhatsAppに何も登録されていないかどうかを確認するために1つのことを行うことができます。

明示的なインテントを使用してWhatsAppアプリケーションにその番号を渡すだけで、WhatsAppに渡した後、WhatsAppは「 WhatsAppに指定されたnoが登録されている」 というポップアップを開きます。これにより、 noが登録されているかどうかを確認できます。

Intent sendIntent = new Intent("android.intent.action.MAIN");
     sendIntent.putExtra("jid", whatsAppNumber + "@s.whatsapp.net");
     sendIntent.putExtra(Intent.EXTRA_TEXT, "whatsAppMessage");
     sendIntent.setAction(Intent.ACTION_SEND);
     sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
     sendIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     sendIntent.setPackage("com.whatsapp.w4b");
     sendIntent.setType("text/*");
     startActivity(sendIntent);

ここで、通常のWhatsAppを使用したい場合は、com.whatsapp.w4bをビジネスWhatsAppアプリケーションに使用し、com.whatsapp.w4bをcom.whatsappに変更するだけです。

whatsAppNumberは、WhatsAppにメッセージを送信する先の番号です

または2番目の方法は、内部連絡先データから連絡先を見つけることです

ArrayList<String> whatsAppContact = new ArrayList();
Cursor c = getContentResolver().query(
    RawContacts.CONTENT_URI,
    new String[] { RawContacts.CONTACT_ID, RawContacts.DISPLAY_NAME_PRIMARY },
    RawContacts.ACCOUNT_TYPE + "= ?",
    new String[] { "com.whatsapp" },
    null);
ArrayList<String> myWhatsappContacts = new ArrayList<String>();
int name = 
c.getColumnIndex(RawContacts.DISPLAY_NAME_PRIMARY);
while (c.moveToNext())
{
whatsAppContact.add(c.getString(name));
 }
 private void getAllWhatsappNumbers()
{
    //This class provides applications access to the content model.
    ContentResolver cr = context.getContentResolver();

//RowContacts for filter Account Types
    Cursor contactCursor = cr.query(
            ContactsContract.RawContacts.CONTENT_URI,
            new String[]{ContactsContract.RawContacts._ID,
                    ContactsContract.RawContacts.CONTACT_ID},
            ContactsContract.RawContacts.ACCOUNT_TYPE + "= ?",
            new String[]{"com.whatsapp"},
            null);



    if (contactCursor != null) {
        if (contactCursor.getCount() > 0) {
            if (contactCursor.moveToFirst()) {
                do {
                    //whatsappContactId for get Number,Name,Id ect... from  ContactsContract.CommonDataKinds.Phone
                    String whatsappContactId = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.RawContacts.CONTACT_ID));

                    if (whatsappContactId != null) {
                        //Get Data from ContactsContract.CommonDataKinds.Phone of Specific CONTACT_ID
                        Cursor whatsAppContactCursor = cr.query(
                                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
                                        ContactsContract.CommonDataKinds.Phone.NUMBER,
                                        ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME},
                                ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
                                new String[]{whatsappContactId}, null);

                        if (whatsAppContactCursor != null) {
                            whatsAppContactCursor.moveToFirst();
                            String id = whatsAppContactCursor.getString(whatsAppContactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
                            String name = whatsAppContactCursor.getString(whatsAppContactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                            String number = whatsAppContactCursor.getString(whatsAppContactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                            Log.d("log1","no:"+number+"name:"+name);
                            whatsAppContactCursor.close();

                            //Add Number to ArrayList
                            myWhatsappContactsNumbers.add(number);
                        }
                    }
                } while (contactCursor.moveToNext());
                contactCursor.close();
            }
        }
    }
}

この機能が提供されると、「com.whatsapp」の連絡先リストを取得できます この連絡先リストを配列リストに入れるため、送信した番号がリストにある(true)かそうでない(false)かを示す関数が必要です。どうすればそれを達成できますか?

Related