Share contact information android

Основы Contacts API в Android

Введение

Начиная с версии 5 API Android SDK интерфейс работы с контактами изменился, а основной контент провайдер Contacts и все его составляющие получили черную метку @Deprecated. Теперь за работу с контактами отвечает провайдер ContactsContract. Эти изменения связаны с изменением структуры хранения контактов, более адаптированной для Android устройств, которым требуется хранить контакты из множества разных источников и предоставлять их пользователю как единую сущность. Ведь сегодня, определенный контакт на нашем мобильном устройстве это не только имя и номер телефона, мы можем захотеть сохранить eMail, Im, Twitter, Facebook аккаунт определенного человека, и при этом, мы не хотим чтобы у нас нас появилось миллион непонятных записей. Поэтому новый Contacts API позволяет Android агрегировать похожие контакты и представлять их пользователю в одной записи, а также связывать контакт с разного рода данными.

Структура данных

На устройстве основная информация о контактах хранится в трех таблицах, на деле их там конечно больше, но мы рассмотрим основные три: contacts, raw_contacts и data. Чтобы было более наглядно я набросал простую схему в Dia.

В таблице contacts хранятся агрегированные контакты, каждая запись в этой таблице представляет собой пользовательский контакт (единую сущность) – объединение одного или нескольких сырых (необработанных) контактов из таблицы raw_contacts. Как видно на схеме, связь между этими таблицами один ко многим (1-N). Одна запись в таблице raw_contacts представляет собой так называемый сырой контакт. Сырой контакт, на языке Android, означает какой-то конкретный набор данных для определенного контакта. Но сами основные данные в этой таблице не хранятся, они хранятся в таблице data, и связь между raw_contacts и data также один ко многим. В таблице data хранятся непосредственно данные. Причем каждая строка этой таблицы это набор данных определенного типа для контакта. Какого именно типа данные хранятся в строке определяется столбцом mimetype_id, в котором содержится id типов данных определенных в таблице mimetype(например vnd.android.cursor.item/name, vnd.android.cursor.item/photo). Теперь разберемся во всем по подробней и с примерами.

Работаем с контактами

Хорошо, допустим мы хотим добавить контакт (Robert Smith, моб.тел. 11-22-33), как нам это сделать? В таблицу contacts мы сами, явно, не можем добавить контакт, так как система сама формирует эту таблицу агрегируя похожие raw_contacts. Идентичность контактов система определяет в основном по имени (одинаковые имена, фамилии и т.п.), но и по другим критериям, каким именно и как ими управлять можно посмотреть в документации. То есть, если мы добавим raw_contact нашего Роберта (Robert Smith) и свяжем его с данными типа vnd.cursor.android.item/phone, а потом у нас появится “похожий”, для системы, Robert Smith связанный с данными типа vnd.cursor.android.item/email и еще один с данными типа vnd.cursor.android.item/photo, то у нас в контактах будет один Robert Smith с фотографией, мобильным и email’ом.

Теперь попробуем переложить это на код. За таблицы и их поля отвечает, как я уже говорил, класс ContactsContract и его внутренние классы и интерфейсы. Например интерфейсом к таблице raw_contacts является класс ContactsContract.RawContacts, а за таблицу data класс ContactsContract.Data. Будьте внимательны когда изучаете их константы – интерфейсы к столбцам – обращайте внимание на метки read/write и read only.

Читайте также:  Batman для андроид кэш

Из написанного выше следует, что для начала, мы должны добавить сырой контакт, а потом связывать его с данными. Добавить пустой контакт можно так:

В контактах у вас должен появиться пустой (Unknown) контакт, ни с чем не связанный. Добавим ему имя. Чтобы это сделать, мы должны связать наш новый контакт с новыми данными используя его id, который можно достать из прошлого запроса. Основные интерфейсы к полям таблицы данных содержаться в классе-контейнере ContactsContract.CommonDataKinds и его внутренних классах и интерфейсах. Например, сейчас нам понадобиться
класс ContactsContract.CommonDataKinds.StrucruredName содержащий нужные нам константы для добавления имени, а также константу MIME типа, которой мы пометим наше поле в таблице данных.

Если мы добавим контакт таким образом, то в списке контактов у нас появиться Robert Smith. Теперь идем дальше, добавим нашему контакту еще и телефон. Для этого нам понадобиться класс ContactsContract.CommonDataKinds.Phone, который является интерфейсом к данным телефонного номера.

Теперь в контактах у нас есть Robert Smith которому можно позвонить. Но вот так добавлять контакт и данные к нему, в несколько запросов, дорого и накладно. Поэтому существует класс ContentProviderOperation, который позволяет построить запрос, который выполнит все наши операции за одну транзакцию. Именно им и рекомендуют пользоваться. Вот так можно добавить нашего Роберта используя ContentProviderOperation.

Вот таким образом в Android можно добавлять контакты. Будьте осторожны используя ContentProviderOperation, так как слишком большой запрос может долго выполняться. Вообще все операции лучше производить в отдельном потоке, потому, что у пользователя, например, может быть слабый телефон и много контактов.

В остальном все другие операции выполняются обычным образом, используя те провайдеры, которые вам необходимы, с некоторыми оговорками. Например, удаление контакта из таблицы contacts удалит все raw_contacts с ним связанные и т.д.

Вот так можно попробовать найти нашего Роберта в контактах:

На этом хотелось бы завершить статью, все же это были только основные сведения о Contacts API в Andoid. Я надеюсь мне удалось описать здесь основные принципы, а вся конкретика зависит от того, что вам необходимо сделать в процессе работы. Можно просто руководствоваться этими принципами и находить в официальной документации интерфейсы которые вам нужны для работы. Успехов!

Источник

How to Share Con­tacts in Bulk via Android Apps

Krishanu Dutta

12 Dec 2017

Our phonebook is filled with at least hundreds of contacts. From family to emergency services, everyone finds a place in our contact lists.

Remember those days when we would hastily look for a pen and a piece to jot a phone number down? How about that thick phone book that used to lie beside the landline, filled with numbers of friends and relatives?

Don’t get too nostalgic, my friend. Finding and sharing a phone number was a task back then and no matter how much you miss those days it won’t change the reality. In the digital era, finding and sharing contact information is a cakewalk.

While there are many methods to share a phone number from Android devices via WhatsApp, SMS, and email, sharing contacts in bulk is still not a very easy thing to do.

Today, we will discuss three Android apps that let you share contacts in bulk seamlessly.

1. Share Contacts

The Share Contacts app available for free on Google Play Store. This smart Android app allows you to send specific information of as many contacts as you want via SMS, email, WhatsApp or any other messaging application.

Читайте также:  Peasant quest rus android

Using the app is pretty simple. You just have to select the contacts and the details you want to share and make a list. There is no virtual limit on the number of contacts you want to send.

Once you’re done compiling the list, just share it through any messaging app and hit Send. What’s more? You can also move this to the external memory chip.

2. Send Contacts

Contact information is sensitive data. You don’t want to copy paste it to any wrong box accidentally. With Send Contacts, you can be double sure about which number is going to whom.

Similar to the above app, this Android application allows you to tick multiple contacts while you keep a track of how many contacts you have selected.

Once you have selected the number, you can then send the information to a specific number on your contact list via SMS or Facebook Messenger. Unlike Share Contacts, this app does not allow you to pick a particular detail and only lets you share phone numbers.

3. ContactBox

Last on this list of mobile apps comes ContactBox. I’ve kept this app below the other two because it only works if both you and the person with whom you’d want to share the contacts need to have ContactBox installed.

This works the best for a family or a small business firm where you can create lists of contacts of various individuals who fit the category and keep all the members in sync.

With ContactBox, you can make lists of different contacts, edit them whenever and however you like and share the contact lists with anyone who has the app. It’s super easy and allows you to sync all the details at once for every member.

You can also make calls, texts or emails from this app directly. It also identifies the caller for you.

Our Pick

These were the free Android apps that you can use to share contacts in bulk. Honestly, I liked Share Contacts the best. Why? Well, it’s simple and a truly no-frills app that does what it’s supposed to do and no more.

Last updated on 5 Jul, 2019
The above article may contain affiliate links which help support Guiding Tech. However, it does not affect our editorial integrity. The content remains unbiased and authentic.

​How to Backup Contacts on Any Android Phone

Contact management can be tricky sometimes. Read the post below to efficiently backup # contacts on any # Android phone.

2 Best Ways to Transfer Contacts From iPhone to Android Without a PC

Don’t have a PC handy to move # contacts from # iOS to # Android? Check out two methods to transfer # contacts from # iPhone to Android without a computer or iTunes.

How to Restore Deleted Contacts from Google

Are # contacts missing from your phone? Find out how to recover deleted contacts from # Google on Stock Android, iPhone, Samsung, and other devices.

How to Send Full Resolution Photos in WhatsApp for iOS

Do not let # WhatsApp strip your phone # photos of their original resolution. Learn how to send and share full resolution photos in # WhatsApp for # iOS.

How to Use Mi Drop on a Windows PC

Do you want to transfer files from your # Android device to Windows PC? Use the simple Mi Drop to do so. Here we will tell you how to use Mi Drop on PC.

How to Use Google’s Storyboard and Selfissmo Photo Apps

Google’s new # photo apps — Storyboard and Selfissimo lets you do more with photos and videos. Read on to see how these app work.

Читайте также:  Вломать вай фай для андроид

How to Fix Dialer App Lag in Xiaomi Mi A1, Pixel 2, and Other Oreo devices

Fix # Dialer app lag on devices running # Android Oreo including # Xiaomi Mi A1, # Google Pixel 2 and Pixel 2 XL. Resolve Google Phone app hang issue on Oreo.

8 Android Apps That GT Staff Can’t Live Without

Want to know which apps GT staff members use and swear by on their Android smartphones? Check out the list of our favorite apps.

Источник

Direct Share делает еще проще поделиться с вашими контактами в Android

Ни одна другая мобильная ОС не поддерживает взаимодействие между приложениями так же хорошо, как Android. С выпуском Android 6.0 Google развил эту идею и пошел еще дальше. Мы используем десятки приложений каждый день, несколько для общения. Вместо того, чтобы делиться всем с каждым каждый раз, имеет смысл облегчить возможность поделиться чем-то с одним человеком, особенно с тем, с кем мы общаемся на регулярной основе.

Эта функция называется Direct Share, и с ее помощью невероятно легко обмениваться информацией из любого приложения напрямую с кем-то, с кем вы регулярно общаетесь. Вот как это работает.

Почти все, что вы используете на Android, имеет какую-то функцию обмена. Он встроен в приложения облачного хранилища, социальные сети, фоторедакторы и удивительное количество игр для людей, которые хотят показать свой высокий балл. Функция «Поделиться» в Android позволит вам отправить ссылку или файл практически в любое другое приложение на вашем телефоне, что упрощает организацию ссылок для исследовательского проекта или обмен фотографиями и даже случайными мемами. Direct Share добавляет новый раздел в список доступных целей общего доступа, только вместо приложений эти общие цели более конкретны.

В большинстве случаев этими общими целями являются люди. В частности, люди, с которыми вы общаетесь на регулярной основе. Если приложение поддерживает Direct Share, вы увидите людей, с которыми общаетесь чаще всего, в этих приложениях. Есть некоторые исключения, например, Google Drive позволяет вам осуществлять прямой доступ к часто используемым папкам. Ключ здесь — человек или часть приложения, которым вы часто пользуетесь. Direct Share позволяет приложениям сделать эту информацию доступной для пользователя, что, в свою очередь, делает ее доступной для обмена с меньшим количеством шагов между кнопкой общего доступа и местом назначения.

В случае, если вы используете несколько приложений для общения или вы часто используете несколько приложений, которые по-разному используют преимущества Direct Share, вы заметите, что ни одно приложение не может использовать все пространство, доступное в этой области Direct Share. В контактном пузыре есть небольшой значок приложения, чтобы вы знали, где вы делитесь с этим контактом, поэтому, хотя есть вероятность дубликатов, избежать этого не сложно. В настоящее время нет никакого способа присвоить приложению или контакту приоритет над любым другим средством вне вашего ежедневного использования, и в результате этот раздел может часто меняться в зависимости от того, как вы используете свой телефон.

Самая большая проблема с Direct Share сейчас — это использование этой функции. В настоящее время в список приложений, поддерживающих эту функцию, даже не входит собственная служба обмена мгновенными сообщениями Google Hangouts, так что, скажем, не так много приложений, поддерживающих эту функцию, является чем-то вроде занижения. Крупнейшими приложениями, которые в настоящее время поддерживают эту функцию, являются WhatsApp , стандартное SMS-приложение Google для телефонов Nexus и Google Drive. Поскольку мы видим, что все больше производителей обновляются до Android 6.0, Direct Share обязательно станет целью для все большего числа разработчиков.

Источник

Оцените статью