- Основы Contacts API в Android
- Структура поставщика контактов
- Разрешения на доступ к поставщику контактов
- Профиль пользователя
- Пример чтения контактов
- Листинг callback метода запроса разрешений
- Листинг метода чтения контактов
- Листинг класса Contact
- Get Show all phone contacts into ListView in android programmatically
- How to Get Show all phone contacts into ListView in android programmatically.
- Click here to download Get Show all phone contacts into ListView in android programmatically project with source code.
- Android Contacts : Get Contact Details Phone Number Programmatically
- 1. Android Get Contact Details Programmatically
- Step 2: Updating AndroidManifest.xml file
- Step 3: Updating activity_main.xml file
- Step 4: Preparing MainActivity.java class
- Step 5: Description of MainActivity.java
- 2. Android Get Contact List And Display in ListView
- Step 2: Updating AndroidManifest.xml file
- Step 3: Adding ListView Item file
- Step 4: Creating a model class
- Step 5: Making a custom adapter class
- Step 6: Updating MainActivity
- Step 7: Describing MainActivity.java class
- 4 thoughts on “Android Contacts : Get Contact Details Phone Number Programmatically”
- Get Contact List In Android Studio And Show in Custom ListView Programmatically
- Download Source Code for get contact list in Android Studio
- Step 1: Create a new project in Android Studio.
- Step 2: Updating AndroidManifest.xml file
- Step 3: Adding ListView Item file
- Step 4: Creating a model class
- Step 5: Making a custom adapter class
- Step 6: Updating MainActivity
- Step 7: Describing MainActivity.java class
- Kotlin Version
Основы Contacts API в Android
Интерфейс работы с контактами изменился начиная с 5-ой версии API Android SDK : провайдер Contacts и все его составляющие получили статус @Deprecated. Теперь за работу с контактами отвечает провайдер ContactsContract, который внёс изменения в структуру хранения контактов, более адаптированную для Android устройств, позволяющую хранить контакты из разных источников и предоставлять их пользователю как единую сущность. В настоящее время объект описания контакта на мобильном устройстве включает не только имя и номер телефона, но и Email, Twitter, Facebook и т.д. Новый ContactsContract API позволяет системе агрегировать похожие контакты и выдавать их пользователю в одной записи, а также связывать контакт с разного рода данными.
Пользовательские данные хранятся в центральном репозитории устройства, которым управляет поставщик контактов — эффективный и гибкий компонент Android. Поставщик контактов — это источник данных, которые отображаются в приложении «Контакты» на Вашем устройстве.
Структура поставщика контактов
Поставщик контактов содержит в себе три типа данных о пользователе, как это представлено на рисунке. Каждый тип данных хранится в отдельной таблице :
В качестве наименований таблиц обычно используются названия соответствующих классов-контрактов ContactsContract. Эти классы определяют константы для URI контента, названий столбцов и значений в столбцах этих таблиц :
ContactsContract.Contacts
Строки в таблице Contacts содержат данные о пользователях, полученные путем агрегации строк необработанных контактов.
ContactsContract.RawContacts
Строки в таблице RawContacts содержат сводные данные о пользователях, относящиеся к пользовательским учетным записям и их типам.
ContactsContract.Data
Строки в таблице Data содержат сведения о необработанных контактах, например email или номера телефонов.
Имеются и другие таблицы, представленные классами-контрактами ContactsContract и представляющие собой вспомогательные таблицы. Эти таблицы поставщик контактов использует для управления своими операциями и поддержки определенных функций, имеющихся в приложении устройства «Контакты» или приложениях для телефонной связи.
Разрешения на доступ к поставщику контактов
Приложения, которым требуется доступ к поставщику контактов для чтения или записи, должны определить разрешения в файле манифеста приложения :
Профиль пользователя
Разрешения на доступ к данным поставщика контактов не распространяются на работу с профилями пользователя.
Примечание : данные о контактах пользователя являются личными и конфиденциальными. Владельцы мобильных устройств заботятся о своей конфиденциальности и часто не проявляют желания предоставлять приложениям возможности сбора данных о них самих и/или их контактах. Если владельцам не до конца ясно, для чего требуется предоставить приложению разрешение на доступ к данным контактов, они могут присвоить Вашему приложению низкий рейтинг, или вообще откажутся его устанавливать.
Строка контактов профиля связана со строкой необработанных контактов в каждой из систем, в которой используется профиль. В каждой строке необработанного контакта профиля может содержаться несколько строк данных. Константы для доступа к профилю пользователя представлены в классе ContactsContract.Profile.
Для доступа к профилю пользователя требуются отдельные разрешения. Наряду с разрешениями READ_CONTACTS и WRITE_CONTACTS (чтение и запись контакта) для доступа к профилю пользователя необходимы разрешения android.Manifest.permission#READ_PROFILE и android.Manifest.permission#WRITE_PROFILE на чтение и запись соответственно.
Помните, что профиль пользователя представляет собой конфиденциальную информацию. При запросе доступа к личной информации на устройстве пользователя обязательно укажите, для чего вам требуется доступ к профилю пользователя.
Примечание : если при получении нескольких строк контактов необходимо определить, какая из них является профилем пользователя, анализируйте значение столбца IS_USER_PROFILE этой строки. Для профиля пользователя значение должно быть «1».
Пример чтения контактов
Рассмотрим простой пример чтения списка контактов и вывода их в журнал Log. Ниже представлен листинг метода onCreate главного модуля приложения MainActivity.
Перед выполнением запроса проверим, имеются ли у нас необходимые разрешения на доступ к контактам. Для этого используем метод ContextCompat.checkSelfPermission, которому в качестве параметров передадим контекст модуля и идентификатор разрешений списка контактов. Если приложение имеет разрешения (permission), то метод вернет значение PERMISSION_GRANTED, в противном случае PERMISSION_DENIED.
При наличии необходимых разрешений вызываем метод чтения контактов readContacts, представленный ниже. В противном случае запросим необходимые разрешения методом ActivityCompat.requestPermissions, которому в качестве параметров необходимо передать контекст модуля, список запрашиваемых разрешений и «определенную в модуле константу» (PERMISSIONS_REQUEST_READ_CONTACTS).
Примечание : при запросе приложением «разрешения» методом requestPermissions(), система открывает стандартное диалоговое окно подтверждения доступа. Приложение не может изменить интерфейс диалогового окна. Если имеется необходимость представить пользователю дополнительную информацию, то это желательно сделать перед открытием окна запроса подтверждения. После запроса первого подтверждения и получения положительного ответа система запоминает результат ответа и больше не открывает окно подтверждения доступа.
Результат выполнения запроса на получение разрешений система возвращает вызовом callback метода onRequestPermissionsResult, листинг которого представлен ниже.
Листинг callback метода запроса разрешений
Система вызывает callback метод onRequestPermissionsResult при запросе разрешений методом requestPermissions. В качестве параметров методу передается массив запрошенных permissions и массив разрешений grantResults.
В примере проверяем результат полученного от системы ответа. При наличии необходимых разрешений вызывается метод readContacts.
Листинг метода чтения контактов
Метод чтения контактов readContacts в качестве параметра получает контекст приложения, используемый для вызова метода getContentResolver().query и получения результата в виде курсора. Если курсор содержит список контактов, то метод в цикле перебирает этот список и выводит в Log параметры контактов (id, name, phone). Метод можно доработать, чтобы он возвращал список контактов в виде List .
Листинг класса Contact
Класс описания контакта, используемого в методе чтения контактов устройства.
Источник
Get Show all phone contacts into ListView in android programmatically
Contacts is one of the most important feature in every mobile phone whether its android device or not because its help us to store our related persons mobile phone number into device. By default android device has its own contact showing application but some times when android app developer needs so specific functionality in his project then you can easily display all the contact list into app. So here is the complete step by step tutorial for Get Show all phone contacts into ListView in android programmatically.
How to Get Show all phone contacts into ListView in android programmatically.
Please add READ_CONTACTS permission inside your AndroidManifest.xml file.
Code for MainActivity.java file.
Code for activity_main.xml layout file.
Code for AndroidManifest.xml file.
Screenshots:
Click here to download Get Show all phone contacts into ListView in android programmatically project with source code.
Источник
Android Contacts : Get Contact Details Phone Number Programmatically
Hello, all learners. Welcome to Android Contacts tutorial with example.
In this get contact list details Android Studio programmatically tutorial we will learn how to retrieve contact name, phone number, email, etc. information in Android app programmatically.
Two examples are there in this post as per the below.
1. Android Get Contact Details Programmatically
Contact based application will need to access contact details, this tutorial will guide you for this purpose.
First, check the output of get contact list details Android Studio programmatically then we will implement it.
Step 2: Updating AndroidManifest.xml file
add required permissions between …. tag.
Final code for AndroidManifest.xml file
Step 3: Updating activity_main.xml file
We will make user interface for getting name, phone number and email address.
Three textviews are used for this purpose.
Copy and paste below source code in activity_main.xml file
Step 4: Preparing MainActivity.java class
Add following source code in MainActivity.java class
Step 5: Description of MainActivity.java
Following source code will open contact list on button click.
After clicking on contact list item, onActivityResult() method is called.
Below line will get name of contact
Below source code will check whether contact has a phone number or not.
If contact has phone number, then it will be got by following
Following source code will take the Email address.
Then finally, all text are set in respected textviews
So all for get contact list details android studio programmatically example tutorial. Thank you.
2. Android Get Contact List And Display in ListView
Welcome to android get contact list with phone numbers tutorial.
Get contact list in Android Studio example guides you to get a contact list and show in the custom listview.
Get contact list in Android example will show how to show all contacts alphabetically.
First, go through the output, then we will develop with Android Studio.
Step 2: Updating AndroidManifest.xml file
add required permissions between …. tag.
Final code for AndroidManifest.xml file
Step 3: Adding ListView Item file
Make a new layout resource file named “lv_item.xml”
Step 4: Creating a model class
Create a new class named “ContactModel.”
Step 5: Making a custom adapter class
Prepare a new class and give a name as “CustomAdapter.”
Step 6: Updating MainActivity
Update activity_main.xml as below source code
Update MainActivity.java class as following
Step 7: Describing MainActivity.java class
Let’s make an eye on below source code
We are using Cursor class to get details about contacts.
We will store contact’s name and phone number in two different variables.
After that, we will create a object of ContactModel class and will add this object to the contactModelArrayList.
After getting all the contacts information, we will set whole information in ListView.
So the end for get contact list in android studio programmatically tutorial. Thank you.
4 thoughts on “Android Contacts : Get Contact Details Phone Number Programmatically”
hi,
i got problem,
when i open contact list, list is open successfully, but when i press back without click on contact, app got crash
See your logcat, which line is making crash?
Hi, this code was so help full for me, i need some more help from u, i need to select specific number of a person, for eg: i have saved someones name with two or more numbers so how could i select specific number. if u can help me, let me know, thank you.
I also need to dig out about selecting specific number.
I will make separate tutorial on this topic in near future.
Источник
Get Contact List In Android Studio And Show in Custom ListView Programmatically
Welcome to get contact list in Android Studio tutorial.
Get contact list in Android Studio example guides you to get a contact list and show in the custom listview.
Get contact list in Android example will show how to show all contacts alphabetically.
If you want to access contact list from Intent, then visit contact list from Intent.
First, go through the output, then we will develop with Android Studio.
Download Source Code for get contact list in Android Studio
Step 1: Create a new project in Android Studio.
Step 2: Updating AndroidManifest.xml file
add required permissions between …. tag.
Note: If you are targeting SDK version above 22 (Above Lollipop) then you need to ask a user for granting runtime permissions. Check marshmallow runtime permission for more information.
Final code for AndroidManifest.xml file
Step 3: Adding ListView Item file
Make a new layout resource file named “lv_item.xml”
Step 4: Creating a model class
Create a new class named “ContactModel.”
Step 5: Making a custom adapter class
Prepare a new class and give a name as “CustomAdapter.”
Step 6: Updating MainActivity
Update activity_main.xml as below source code
Update MainActivity.java class as following
Step 7: Describing MainActivity.java class
Let’s make an eye on below source code
We are using Cursor class to get details about contacts.
We will store contact’s name and phone number in two different variables.
After that, we will create a object of ContactModel class and will add this object to the contactModelArrayList.
After getting all the contacts information, we will set whole information in ListView .
Kotlin Version
Ask your any questions regarding this tutorial in comment section.
You can also give your reviews and recommendations in comment section as well.
So the end for get contact list in android studio programmatically tutorial. Thank you.
Источник