- Где в Android хранятся контакты и как их достать?
- How to transfer contacts to a new Android phone
- Products used in this guide
- How to back up your phone’s contacts to your Google account
- How to make sure new contacts are always saved to your Google account
- How to manually export contacts to Google Drive
- How to manually import contacts to a new phone
- Value above all
- Google Pixel 3a XL
- These are the absolute best Galaxy Tab S7 Plus cases you can buy
- Play PC VR games on the Oculus Quest 2 without the $80 official cable
- Keep the Oculus Quest or Quest 2 charged with one of these battery packs
- Основы Contacts API в Android
- Введение
- Структура данных
- Работаем с контактами
Где в Android хранятся контакты и как их достать?
Список контактов в смартфонах на базе Android представляет из себя файл, который находится в памяти устройства. Некоторые пользователи спрашивают, где этот файл хранится и как его достать? Ответ вас может удивить.
Что касается самого файла с контактами, находится он по следующему адресу: /data/data/com.android.providers.contacts/databases/, сам же файл с контактами называется либо contacts.db, либо contacts2.db. Другое дело, что добраться до этого файла не всегда возможно — файловому менеджеру необходимы рут-права. Если они у вас установлены, тогда вы сможете найти указанный файл. Вот как он выглядит:
Однако хочется отметить, что нет никакого смысла лезть в дебри файловой системы устройства, ведь куда проще экспортировать контакты в нужный вам раздел. Для этого откройте контакты, нажмите на кнопку «Меню» и выберите «Импорт / экспорт» (иногда эти два раздела указаны в меню раздельно, вам нужен экспорт).
Затем выберите нужный раздел для экспортирования. Вы можете сохранить контакты в виде файла, например, во внутреннюю память устройства, а затем, при необходимости, перенести файл на другой носитель, включая компьютер.
Как видите, все очень даже просто.
Друзья! Если наш сайт помог вам или просто понравился, вы можете помочь нам развиваться и двигаться дальше. Для этого можно:
- Оставить комментарий к статье.
Источник
How to transfer contacts to a new Android phone
Source: Ara Wagoner / Android Central
Switching to a new phone involves a lot of work: you have to make sure your apps and settings are transferred over correctly, along with your photos and videos, text messages, and contacts. Thankfully, Google’s built-in tools seamlessly back up data to your Google account, making it easier to bring all your data — including your contacts — over to your new phone.
Products used in this guide
- Incredible value: Google Pixel 3a XL ($415 at Amazon)
How to back up your phone’s contacts to your Google account
Google has a robust backup utility that automatically backs up all data on your phone to your Google account, including contacts, texts, app data, photos and videos, call history, and even your device’s settings. It does all this in the background without your intervention, and when you’re switching to a new phone, you can rest assured that all the data from your old device will transfer over seamlessly.
All the data is stored in your Google Drive, and the best part is that the data doesn’t count toward your Drive’s storage quota. The only outlier to this rule is if you have photos and videos backed up in original quality; in that case, they will take up space on your Drive. But the portion allocated for contacts, app data, texts, call history, and device settings doesn’t affect your Drive quota.
Take it from me: I usually switch phones once in two weeks, and I rely exclusively on Google’s backup utility to bring all my apps, contacts, photos, and data over to a new phone. The setting is enabled by default, but here’s how you can make sure your phone is automatically backing up contacts to your Google account.
- Open Settings from the home screen.
- Scroll down to the bottom of the page.
Tap System.
Source: Harish Jonnalagadda / Android Central
Select Contacts to see when the data was last backed up.
Source: Harish Jonnalagadda / Android Central
Google backs up data once a day, and if you want to be doubly sure that the data is current before switching to a new phone, you can always initiate a manual backup by hitting Back up now in the Backup page.
If you’re on a Samsung phone, you’ll find these options in the Google sub-menu instead. Navigate to Settings -> Google -> Backup to find these options.
How to make sure new contacts are always saved to your Google account
Now that you know that all the contacts on your phone are automatically backed up to your Google account, it’s time to make sure any new contacts you add are saved to your Google account. If you’re using a Pixel or Android One device, all contacts are automatically saved to your Google account.
But if you’re on a Samsung phone, contacts are saved to your Samsung account by default. You have to switch that to your Google account if you want new contacts to be backed up to your Google account. Here’s how to do that on a Samsung phone:
- Open Contacts from the app drawer.
- Hit the Plus icon at the right corner to add a new contact.
- In the contact creation window, select the menu at the top.
Choose Google to save new contacts to your Google account automatically.
Source: Harish Jonnalagadda / Android Central
How to manually export contacts to Google Drive
If you don’t want to use Google’s built-in tools and are looking for a manual way to export contacts, you can do so directly from the Contacts app.
- Open Contacts from the app drawer.
- Hit the hamburger menu on the top left corner (three horizontal lines).
Go to Settings.
Source: Harish Jonnalagadda / Android Central
Choose a download destination, and hit Save to download the file.
Source: Harish Jonnalagadda / Android Central
All the contacts data is exported as a single .vcf file. If you didn’t change the destination directory, the file will be located in the Downloads folder. Here’s how you can upload it to Google Drive:
- Open Files from the app drawer. On Samsung phones, this is called My Files.
- Hit the hamburger menu on the top left corner (three horizontal lines).
Go to Downloads.
Source: Harish Jonnalagadda / Android Central
Choose the folder you want to save to in Google Drive, and hit Save.
Source: Harish Jonnalagadda / Android Central
The .vcf file is now in your Google Drive, and you can now use it to manually import contacts when switching to a new phone.
How to manually import contacts to a new phone
If you want to manually import contacts to a new phone, all you need to do is navigate to Google Drive and download the .vcf file onto your new phone. Save the file in the Downloads folder. Once that’s done, here’s how to import it into Contacts:
- Open Contacts from the app drawer.
- Hit the hamburger menu on the top left corner (three horizontal lines).
Go to Settings.
Source: Harish Jonnalagadda / Android Central
Select the contacts.vcf file that you exported from your previous phone. The Contacts app should then import all contacts to your new phone.
Source: Harish Jonnalagadda / Android Central
It is very straightforward to have your contacts and other data on your phone backed up, and if you need to, you can always use the manual option and upload the .vcf file containing all the information to your Google Drive.
Value above all
Google Pixel 3a XL
Still a great phone in 2020
The Pixel 3a XL continues to be one of the best phones in the market today. You get clean software backed by robust internal hardware, a fantastic camera, and timely updates. Honestly, the 3a XL makes an excellent case for not shelling out $1,000 for flagships.
We may earn a commission for purchases using our links. Learn more.
These are the absolute best Galaxy Tab S7 Plus cases you can buy
One of Samsung’s most powerful tablet to date is big, bold, and absolutely in need of protection against drops, dents, and dings. A good case is functional as well as durable, and these cases are the absolute best.
Play PC VR games on the Oculus Quest 2 without the $80 official cable
The Oculus Link cable is undoubtedly the best way to play SteamVR and Oculus Rift games on the Oculus Quest 2, but it costs nearly 80 bucks. Alternative cables cost far less while hitting the same benchmarks, but some you’ll find on Amazon can’t be trusted. Here are the ones you should try first.
Keep the Oculus Quest or Quest 2 charged with one of these battery packs
One difficulty of mobile VR is keeping the device charged if you have particularly long sessions. Here are some recommendations to keep your Oculus Quest 2 or Oculus Quest going strong.
Источник
Основы 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.
Из написанного выше следует, что для начала, мы должны добавить сырой контакт, а потом связывать его с данными. Добавить пустой контакт можно так:
В контактах у вас должен появиться пустой (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. Я надеюсь мне удалось описать здесь основные принципы, а вся конкретика зависит от того, что вам необходимо сделать в процессе работы. Можно просто руководствоваться этими принципами и находить в официальной документации интерфейсы которые вам нужны для работы. Успехов!
Источник