Отношения между поставщиком SMS-контента и контактами - PullRequest
0 голосов
/ 02 июля 2011

У меня большая проблема, единственное отношение, которое я могу получить между поставщиком содержимого sms и поставщиком содержимого контактов, - это номера телефонов, НО поставщик содержимого sms хранит номера в другом формате по сравнению с тем, как номера хранятся в контактах. поставщик услуг. следовательно, как я могу сравнить числа между двумя таблицами, так как я не вижу никаких других отношений или столбцов, которые их связывают. В моей стране формат телефонного номера +254728306203, таким образом провайдер смс сохраняет номер, а провайдер контактов сохраняет его как 072-830-6203. Любая помощь будет принята с благодарностью

1 Ответ

0 голосов
/ 02 июля 2011

Попробуйте это (для SDK 2.0+).Пусть число будет в любом формате ... просто передайте его в виде строки ...

Добавьте разрешение android.permission.READ_CONTACTS в манифесте.

/**
     * Retrieves display name for the provided contact number
     * 
     * @param context
     *            Context
     * @param number
     *            The contact number for which display name is to be retrieved
     *            form android contacts
     * @return Returns displayName for the contact if available. If display name
     *         is not available then it returns the same number
     */
    public static String getContactNameFromNumber(Context context, String number) {
        // If name is not found, number will be returned
        String contactDisplayName = number;

        Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
                Uri.encode(number));
        Cursor cursor = context.getContentResolver().query(uri,
                new String[] { PhoneLookup.DISPLAY_NAME }, null, null, null);
        if (cursor.moveToFirst()) {
            contactDisplayName = cursor.getString(cursor
                    .getColumnIndex(PhoneLookup.DISPLAY_NAME));
        }
        cursor.close();
        Log.d("GetNumber", "Retrived DisplayName for contact number:" + number
                    + " DisplayName:" + contactDisplayName);

        return contactDisplayName;

    }
...