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

2020-02-14 android class apk whatsapp

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

Answers

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

明示的な意図を使用してその番号をWhatsAppアプリケーションに渡すだけで、WhatsAppに渡した後、WhatsAppがポップアップを開き、「 WhatsAppに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をcom.whatsappに変更するだけで、ビジネスWhatsAppアプリケーションに「com.whatsapp.w4b」が使用されます。

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