簡體   English   中英

如何檢查Android手機上的聯系人是否啟用了whatsapp?

[英]How to Check if a contact on android phone book has whatsapp enabled?

對於我的地址簿中給定的號碼,我需要查看號碼是否啟用了whatsapp。 (我們的想法是選擇SMS / WhatsApp來啟動文本意圖)

可以說,我在聯系人下面有兩個號碼,而且我需要知道哪個號碼啟用了whatsapp。

Nexus 4上的“People”應用程序顯示了兩個聯系人號碼,還有一個下面有一個CONNECTIONS部分,它只顯示了WhatsApp可能的聯系方式。

有沒有辦法查找(如人們的應用程序如何)?

如果你想知道這個聯系人是否有WhatsApp:

String[] projection = new String[] { RawContacts._ID };
String selection = ContactsContract.Data.CONTACT_ID + " = ? AND account_type IN (?)";
String[] selectionArgs = new String[] { "THE_CONTACT_DEVICE_ID", "com.whatsapp" };
Cursor cursor = activity.getContentResolver().query(RawContacts.CONTENT_URI, projection, selection, selectionArgs, null);
boolean hasWhatsApp = cursor.moveToNext();
if (hasWhatsApp){
    String rowContactId = cursor.getString(0);
}

並找到WhatsApp的聯系人數

projection = new String[] { ContactsContract.Data.DATA3 };
selection = ContactsContract.Data.MIMETYPE + " = ? AND " + ContactsContract.Data.RAW_CONTACT_ID + " = ? ";
selectionArgs = new String[] { "vnd.android.cursor.item/vnd.com.whatsapp.profile", rawContactId };
cursor = CallAppApplication.get().getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, selection, selectionArgs, "1 LIMIT 1");
String phoneNumber = null;
if (cursor.moveToNext()) {
    phoneNumber = cursor.getString(0);
}

使用@ idog的方法,我改進了代碼以便更輕松地工作。 contactID是要傳遞的字符串變量。 如果聯系人沒有WhatsApp返回null ,否則返回contactID作為變量傳遞。

public String hasWhatsapp(String contactID) {
    String rowContactId = null;
    boolean hasWhatsApp;

    String[] projection = new String[]{ContactsContract.RawContacts._ID};
    String selection = ContactsContract.Data.CONTACT_ID + " = ? AND account_type IN (?)";
    String[] selectionArgs = new String[]{contactID, "com.whatsapp"};
    Cursor cursor = getActivity().getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, projection, selection, selectionArgs, null);
    if (cursor != null) {
        hasWhatsApp = cursor.moveToNext();
        if (hasWhatsApp) {
            rowContactId = cursor.getString(0);
        }
        cursor.close();
    }
    return rowContactId;
}
public int hasWhatsApp(String contactID) {
        int whatsAppExists = 0;
        boolean hasWhatsApp;

        String[] projection = new String[]{ContactsContract.RawContacts._ID};
        String selection = ContactsContract.Data.CONTACT_ID + " = ? AND account_type IN (?)";
        String[] selectionArgs = new String[]{contactID, "com.whatsapp"};
        Cursor cursor = getActivity().getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, projection, selection, selectionArgs, null);
        if (cursor != null) {
            hasWhatsApp = cursor.moveToNext();
            if (hasWhatsApp) {
                whatsAppExists = 1;
            }
            cursor.close();
        }
        return whatsAppExists;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM