Com android providers contacts ошибка

Ошибка com.android.providers или process com.sec.android.provider.logsprovider встречается крайне часто и является одной из многочисленных проблем в

Ошибка com.android.providers или process com.sec.android.provider.logsprovider встречается крайне часто и является одной из многочисленных проблем в работе с устройством на базе Android. Причина возникновения является процессы которые затрагивают системные файлы ОС, причиной такого поведения является расширение функционала приложений.

Симптомы появления ошибки

Проблема случилась у прияти

Если вы случайно столкнетесь с этой сумасшедшей ошибкой, я надеюсь, что это поможет вам быстро ее исправить. Я не коснулся моего телефона, когда раздался звонок от моего приятеля. Я пошел отвечать на телефон и появилось сообщение «Приложение LogsProvider (процесс com.sec.android.provider.logsprovider) неожиданно остановилось». Я отклонил эту ошибку, и через две-три секунды она снова появилась. Он продолжал это делать, по сути дела, мой Android не использовался. Оказывается, исправить это довольно легко; хотя с появлением диалога так часто потребовалось больше времени, чтобы добраться до него, чем я надеялся.

Чтобы решить эту проблему: в главном меню нажмите «Настройки», «Приложения», «Управление приложениями». На этом экране будут отображаться вкладки вверху, щелкните вкладку ALL. Затем прокрутите вниз до LogsProvider, выберите приложение, затем нажмите «Стоп» и «Очистить данные». После этого вам должно быть хорошо идти.

С ошибками в системных приложениях изредка сталкиваются некоторые владельцы устройств, работающих под управлением операционной системы Android. Часто сбой возникает из-за неправильной настройки аппарата или недостатка свободного места для работы конкретной программы. Если неполадка появляется в неиспользуемой утилите, то многие люди даже не обращают на это внимание. А что делать, когда в приложении телефон произошла ошибка? Именно на этот вопрос мы постараемся ответить в этой статье.

Содержание

  • Основные причины ошибки
  • Как исправить ошибку?
  • Заключение
  • Причины появления проблемы
  • Методы устранения ошибки
  • Крайние меры
  • Очистка списка контактов
  • Контакты по-прежнему не работают на Андроид
  • Причины проблемы и варианты ее устранения

Основные причины ошибки

Установить причину появления ошибки самостоятельно довольно сложно, однако, ознакомиться с провоцирующими факторами лишним не будет. Все они расписаны в следующем списке:

  • Случайная ошибка, которая чаще всего исчезает после перезагрузи аппарата.
  • Переполненный кэш, касающийся конкретного приложения или всей системы в целом.
  • Наличие в системе вредоносного ПО.
  • Удаление важного файла системы пользователем.
  • Конфликт сторонней программы с системным приложением Телефон.

Это всего лишь основные причины, но для базового ознакомления их будет достаточно.

Как исправить ошибку?

К исправлению ошибки следует подходить комплексно, то есть с использованием всех возможных методов. Рекомендуем идти от способа к способу до того момента, пока проблема полностью не исчезнет.

Способ 1: очищаем кэш и удаляем временные файлы

Недостаток свободной памяти и мусорные файлы не только тормозят смартфон, но и часто приводят к возникновению серьёзных ошибок в системе. Важно периодически очищать кэш и удалять ненужные приложения с телефона. Сделать это правильно, а главное быстро можно с помощью дополнительных программ, например, CCleaner или Clean Master. Также можно воспользоваться встроенным «чистильщиком», который присутствует на устройствах популярных производителей:

  1. Заходим в программу.
  2. Нажимаем по кнопке «Очистка» или «Мусор».
  3. Просматриваем количество доступных к удалению файлов и нажимаем по кнопке «Очистить».

Очищаем мусор в телефоне

Если устанавливать дополнительный софт желания нет, можно попросту очистить кэш проблемного приложения через стандартные возможности настроек. Первым делом перейдём в них, а далее выполним рекомендации руководства:

  1. Заходим во вкладку «Все приложения».
  2. Переходим на страницу с программой «Телефон».
  3. Нажимаем по кнопке «Очистить» и выбираем «Кэш».
  4. Подтверждаем процедуру удаления, нажав в появившемся окошке по кнопке «Ок».

Очищаем кэш приложения Телефон

Скорее всего, после выполнения данных действий ошибка в приложении телефон исчезнет. Но если этого не произошло – переходите к следующему методу.

Способ 2: отключаем синхронизацию даты и времени

Как показывает практика, системную ошибку нередко провоцирует выставленная настройка синхронизации времени с сетью. Из этого можно сделать вывод, что ручная установка текущей даты и часового пояса исправит проблему. Сделать это правильно поможет пошаговая инструкция, представленная далее:

  1. Открываем настройки.
  2. Заходим во вкладку «Расширенные настройки». Заметим, что на некоторых устройствах переходить сюда необязательно.
  3. Переходим в раздел «Дата и время».
  4. Убираем галочку или переводим ползунок влево возле строк «Дата и время сети» и «Часовой пояс сети».
  5. Устанавливаем дату и время вручную.

Отключаем синхронизацию даты и времени

В конце сохраняем настройки и перезагружаем смартфон.

Способ 3: сканируем систему на наличие вирусов

Если вы заметили появление ошибки не только в приложении Телефон, но и в других программах, то рекомендуем проверить систему телефона антивирусом. Это может быть, как встроенный в прошивку софт, так и скачанная из Google Play утилита. В качестве последнего варианта можно использовать приложения Dr.Web, Avast, AVG и прочие проверенные сервисы. Для примера рассмотрим работу с программой Dr.Web:

  1. Запускам приложение.
  2. Нажимаем по кнопке «Сканер».
  3. Выбираем тип сканирования (рекомендуем использовать полную проверку).
  4. Ожидаем окончания процедуры проверки, продолжительность которой зависит от количества установленных программ.

Сканируем систему на наличие вирусов

При обнаружении вирусов вылечите повреждённые файлы, воспользовавшись встроенным инструментом антивируса.

Кстати, советуем проверить систему несколькими антивирусами, но только не одновременно.

Способ 4: сбрасываем устройство до заводских настроек

Этот метод оптимально использовать в том случае, если не один из предыдущих вариантов не помог. Обратите внимание, что сброс телефона до первоначальных настроек приведёт к удалению всех приложений, фотографий, видео и системных надстроек. Чтобы сделать всё правильно, воспользуйтесь подробным руководством:

  1. Заходим в настройки.
  2. Переходим в раздел «Расширенные настройки».
  3. Открываем вкладку «Восстановление и сброс».
  4. Нажимаем по пункту «Сброс настроек».
  5. Кликаем по кнопке «Сбросить настройки».
  6. Запускаем процедуру, нажав «Ок» в появившемся окне.

Сбрасываем устройство до заводских настроек

Если через настройки выполнить сброс не представляется возможным, то можно воспользоваться меню «Рекавери». Для этого:

  1. Полностью выключаем телефон.
  2. Переходим в меню «Рекавери», одновременно нажав по нескольким клавишам. Чаще всего это кнопка питания и одна из клавиш регулировки громкости.
  3. С помощью качели регулировки громкости заходим в раздел «Wipe data/factory reset».
  4. Затем выбираем «Yes – delete all user data».
  5. Перезагружаем устройство, нажав по строке «Reboot system now».

После выполнения этих действий ошибка в приложении Телефон исчезнет с вероятностью в 99 процентов. Однако если этого не произошло, то решение одно – перепрошивка смартфона.

Заключение

Множество пользователей смартфонов с операционной системой Android, сталкивались с такой проблемой — как исправить ошибку android.process.acore на Вашем смартфоне. У неподготовленного пользователя или у новичков, это вызывает панику, и они не знают, что делать, а некоторые даже преждевременно «хоронят» свои телефоны. Но «не так страшен черт, как его малюют».

Чтобы исправить ошибку android.process.acore, нужно сначала найти корни проблемы. Анализируя различные ресурсы и личный опыт, мы решили в рамках данной статьи описать наиболее частые причины возникновения такого рода ошибки.

Надеемся, что многим, данная информация поможет без паники решить проблему.

Причины появления проблемы

Есть 3 основных причины появления ошибки android.process.acore:

  • отключено системное приложение, из-за чего Android не может нормально функционировать;
  • одновременно установлено несколько приложений со сходными функциями, которые некорректно синхронизируются со списком контактов, календарем или другим системным приложением;
  • удалены важные системные файлы.

Методы устранения ошибки

Существует несколько методов, которые, возможно, помогут исправить ошибку android.process.acore на Вашем девайсе. Эти методы рассчитаны как на обычного, так и на опытного пользователя. Внимательно ознакомьтесь со всеми вариантами и выберете тот, который Вы сможете осуществить. Ни в коем случае не пытайтесь своими силами решить проблему путем изменения системных файлов, если Вы не профессионал.

Решение проблемы для обычных пользователей

Чаще всего ошибка возникает при работе с телефонной книгой, при попытке добавить, сохранить, изменить или удалить какой-либо контакт. Лечение: пытаемся зайти в Настройки/../Хранилище контактов (называться может по-разному, но суть понятна) и находим опцию – «Стереть данные». Во многих случаях помогает исправить ситуацию, но вы уничтожаете весь список контактов. Тут уж ничего не поделаешь, придется жертвовать. Для тех, у кого есть возможность синхронизации с аккаунтом в Google, данный способ пройдет безболезненно.

Одной из причин возникновения ошибки android.process.acore может быть отключение Хранилища календаря или другие отключенные программы. Для того, чтобы проблема ушла, перейдите в Настройки/Приложения, там находим дополнительное меню и нажать на «Сбросить настройки». Этот метод, конечно, если он сработает, хорош тем, что личные данные не теряются при сбросе.

Исправить ошибку android.process.acore, можно путем удаления приложений для оптимизации беспроводной сети Wi-Fi , в некоторых случаях проблема исчезает.

Действенным методом является также «Откат к заводским параметрам». Это действие отменит все индивидуальные настройки пользователя, но это не так критично, как потеря контактов. Для справки прочтите инструкцию к пункту Recovery для вашей модели.

Устранение неполадки для опытных пользователей

Еще один способ борьбы с проблемой можно порекомендовать для опытных пользователей Android. Он заключается в изменениях системного файла:

/system/csc/others.xml. В нем находится строка:

,

которую нужно отредактировать так, чтобы получить следующее:

.

Еще раз напомним, что данный способ ТОЛЬКО для опытных!

Если Ваше устройство «рутировано», вполне возможно, что Вы провели неудачную чистку системных приложений и файлов, в следствии чего произошла ошибка android.process.acore. В этом случае Вам придется искать в интернете удаленные файлы именно для используемой версии прошивки Android, возвращать их на место и выставлять соответствующие права.

Также для устройств с root-правами решением проблемы послужит включение, возможно, отключенного ранее процесса logsProvider 2.0.d через Titamium backup.

Крайние меры

И, наконец, когда ничего не помогает, то прибегают к радикальным методам, которые заключаются в полной очистке памяти аппарата с потерей всех данных. Таким образом из системы удаляются приложения, которые генерировали ошибку android.process.acore.

А если hard reset не помог, единственным возможным вариантом остается перепрошивка смартфона. Такой случай актуален для «рутированных» устройств, в процессе очистки которых были удалены важные системные файлы, которые не удалось восстановить.

Если Вы использовали другой метод, чтобы исправить ошибку android.process.acore, сообщите нам о своих успехах в комментариях. Удачи!

От компании Google является самой популярной и распространённой во всём мире. Разумеется, у неё есть свои достоинства и недостатки. Одним она нравится, другим — нет.

Android – это хоть и надежная система, но и в ней достаточно разных багов и ошибок

Как и в любых других операционных системах, в Андроиде иногда случаются ошибки, препятствующие работе с устройством. К счастью, большинство таких неисправностей можно быстро решить самостоятельно. В этой статье подробно рассмотрим, как исправить ошибку android.process.acore. Давайте разбираться. Поехали!

Прежде чем предпринимать какие-либо действия, нужно разобраться, в чём корень проблемы? Существует ряд причин, которые вызывают появление ошибки android.process.acore на устройстве:

  • одна из системных программ выключена, что препятствует нормальной работе ОС;
  • на вашем смартфоне имеется несколько утилит, которые выполняют одинаковые функции, что приводит к конфликту при синхронизации с контактами, календарями и прочим;
  • со смартфона были удалены файлы системы.

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

Android Как узнать состояние жесткого диска: сколько он еще прослужит

Предупрежден — значит вооружен! Это правило как нельзя кстати подходит к работе с жесткими дисками. Если заранее знать, что такой-то вот жесткий диск скорее всего выйдет из…

× 21.10.2019 Elcomsoft phone password breaker словарь Сети 21.10.2019 Бесплатная программа для резервного копирования Linux 21.10.2019 Установка подключения к MySQL через ODBC connector Linux 21.10.2019 Microsoft OneNote – лучшая записная книжка Wi-Fi 21.10.2019 Полная настройка и установка Realtek High Definition Audio Операционные системы 21.10.2019 Аудио драйвер реалтек (Realtek HD Audio) Интернет FTP клиент — какие бывают, что позволяют делать на сервере и какой выбрать Смартфон Бесплатные программы для Windows Android Универсальное решение от Realtek Apple Функции и особенности утилиты Операционные системы Скачать itunes версии 12 Сети Скачать itunes версии 12 Сети

На смартфонах с операционной системой Android есть такая неприятность, как ошибка android.process.acore. Появляется она чаще всего в приложении Контакты. Кстати, в силу неизвестных мне причин, чаще всего это случается на смартфонах Samsung и HTC. Причём началось ещё во второй версии Андроид и продолжается на 4.2.2 и 4.4. Как обстоят дела на пятой версии — пока не известно. Как это проявляется? При попытке открыть вкладку с контактами и приложении Телефон (этого которое в виде телефонной трубки внизу экрана) появляется сообщение: «В приложении Android.process.acore произошла ошибка  и оно было остановлено». Такая же ситуация случается и с некоторыми другими системными приложениями, как  Календарь или Камера, например. В качестве причины разработчики указывают конфликт между установленными программами и системными приложениями, указывая на возможное несоответствие в полях с данными и возникающий из-за этого сбой синхронизации.Как исправить ошибку android.process.acore? Начать стоит с анализа ситуации.

Вспомните, какие приложение Вы устанавливали непосредственно перед тем, как стали вылетать контакты? В 90% случаев помогает выявление и удаление таких программ. Если вспомнить не получается, тогда будем действовать вот как. Идём в «Настройки»->»Приложения» и открываем вкладку «Работающие».

Это список активных в данный момент программ. По очереди выбираем приложения, не являющиеся системными сервисами (типа Viber, WhatsApp, Вконтакте и т.п.) и останавливаем их. Чтобы это сделать, нужно выбрать программу и затем нажать на кнопку Остановить:

После этого снова запускаем Контакты и проверяем. Обычно таким образом удаётся устранить ошибку android.process.acore, отделавшись «малой кровью».

Если это не помогло, то прибегнем к тяжёлой артиллерии. Снова открываем список Приложений, нажимаем на значок параметров (три кубика) чтобы вызвать вот такое меню:

Сначала нажимаем на пункт «Очистить кэш всех приложений», затем — «Сбросить настройки». Проверяем устранилась ли проблема.

Очистка списка контактов

Если предложенный выше способ не помог, то в этом случае придётся действовать более радикально. При этом надо учитывать, что такие действия могут повлечь потерю пользовательских данных.

Внимание! Перед тем как выполнять следующие шаги — обязательно сделайте резервную копию списка контактов и другой важной информации на телефоне.

Открываем в настройках повторно раздел «Приложения», находим там «Контакты» и выбираем его:

Сначала очищаем кэш, затем — тапаем на кнопку «Стереть данные». Этим Вы прибьёте полностью контакт-лист на телефоне. То же самое надо проделать и с Хранилищем контактов:

Обычно такое удаление данных помогает разрешить проблемы с совместимостью и далее сообщение «процесс android.process.acore остановлен» более не появляется.

Сброс настроек к заводским

Самый крайний способ, который точно поможет исправить ошибку «android.process.acore» — это полный сброс настроек смартфона к заводским параметрам. Чтобы это сделать надо зайти в раздел «Восстановление и сброс» и выбрать пункт «Сброс настроек». Подтверждаем свои действия и ждём результат выполнения процесса. С его помощью удаляются все сторонних программы и вся конфигурация устройства возвращается к той, которая была на абсолютно новом рабочем телефоне.

Поговорим о популярной ошибке на телефонах Андроид — «android.process.acore был остановлен» или приложение контакты не работает. Ошибка при открытии контактов может появиться при удалении или повреждении важных системных файлов. Данная проблема возникает после добавления контактов из социальных сетей или мессенджеров, которые неправильно синхронизируются со стандартными приложениями.

Причины ошибки android.process.acore на Android

Причиной «android.process.acore» могут являться и другие программы (например, для оптимизации Wi-Fi). Постарайтесь вспомнить, что Вы недавно устанавливали на телефон

Как исправить ошибку приложения Контакты в Android

Сначала надо создать резервную копию своих контактов и сохранить ее компьютер. Самыми популярными утилитами для резервного копирования являются:

  • Titanium Backup;
  • Super Backup;
  • ROM Manager;
  • Mobile Backup&Restore;
  • SmartSwitch от Samsung Electronics.

Если Вам надо сохранить журнал вызовов и сообщений, воспользуйтесь приложением SMS Backup+. Затем нужно совершить такие действия:

  • открыть «Настройки» — «Системные» — «Приложения» (или «Диспетчер приложений»)
  • нажать на вкладку «Все»
  • выбрать пункт «Менеджер контактов» или «Хранилище контактов» и нажать «Стереть данные».

Все контакты на смартфоне будут удалены. Потом нужно перезагрузить Андроид и восстановить сохраненные контакты с компьютера. Отметим, что если у Вас есть учетная запись Gmail, то список контактов будет восстановлен автоматически. Если «android.process.acore» всплывает не только при открытии контактов, но и других приложений, попробуйте удалить недавно установленные программы и перезагрузить устройство.

Контакты по-прежнему не работают на Андроид

Здесь поможет сброс Андроид к заводским настройкам (hard reset). Имейте в виду, что после него исчезнут все данные в системной памяти телефона (приложения, контакты и т.д.) Перед выполнением сброса нужно создать резервные копии с помощью утилит, предложенных выше. Для возврата к заводским настройкам следует:

  • зайти в «Настройки»
  • выбрать «Резервное восстановление и сброс» — «Сброс настроек»

После сброса настроек Андроид на телефоне, устанавливайте приложения не торопясь. Проверяйте контакты на наличие ошибки после каждого установленного приложения.

Изредка в Android происходят сбои, которые оборачиваются неприятными последствиями для пользователя. К таковым относится и постоянное появление сообщений «В приложении произошла ошибка». Сегодня мы хотим рассказать, почему такое происходит и как с ним бороться.

Причины проблемы и варианты ее устранения

На самом деле появление ошибок может иметь не только программные причины, но и аппаратные — например, выход из строя внутренней памяти девайса. Однако в большинстве своём причиной возникновения неполадки является всё-таки программная часть.

Перед тем как приступать к описанным ниже методам, проверьте версию проблемных приложений: возможно, они недавно обновились, и вследствие недоработки программиста появилась ошибка, которая и вызывает появление сообщения. Если, наоборот, установленная в устройстве версия той или иной программы довольно старая, то попробуйте её обновить.

Подробнее: Обновляем приложения на Android

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

Способ 1: Очистка данных и кэша приложения

Порой причиной ошибки может быть сбой в служебных файлах программ: кэша, данных и соответствия между ними. В таких случаях следует попробовать сбросить приложение к виду только что установленного, очистив его файлы.

  1. Зайдите в «Настройки».
  2. Прокрутите список опций и найдите пункт «Приложения» (иначе «Диспетчер приложений» или «Менеджер приложений»).
  3. Добравшись к списку приложений, переключитесь на вкладку «Все».

    Найдите в списке программу, которая вызывает сбой, и тапните по ней, чтобы войти в окошко свойств.

  4. Работающее в фоне приложение следует остановить, нажав на соответствующую кнопку. После остановки нажмите сначала «Очистить кэш», потом — «Очистить данные».
  5. Если ошибка появляется в нескольких приложениях, вернитесь к списку установленных, найдите остальные, и повторите манипуляции из шагов 3-4 для каждого из них.
  6. После очистки данных для всех проблемных приложений перезагрузите устройство. Скорее всего, ошибка исчезнет.

В случае если сообщения об ошибках появляются постоянно, и среди сбойных присутствуют системные, обратитесь к следующему способу.

Способ 2: Сброс настроек к заводским

Если сообщения «В приложении произошла ошибка» касаются встроенного ПО (звонилки, приложения для SMS или даже «Настроек»), вероятнее всего, вы столкнулись с проблемой в системе, которую очисткой данных и кэша не исправить. Процедура hard reset является ультимативным решением множества программных неполадок, и данная — не исключение. Само собой, при этом вы потеряете всю свою информацию на внутреннем накопителе, так что рекомендуем скопировать все важные файлы на карту памяти или компьютер.

  1. Зайдите в «Настройки» и найдите опцию «Восстановление и сброс». Иначе она может называться «Архивация и сброс».
  2. Прокрутите список вариантов вниз, и найдите пункт «Сброс настроек». Зайдите в него.
  3. Ознакомьтесь с предупреждением и нажмите кнопку, чтобы начать процесс возвращения телефона в заводское состояние.
  4. Начнётся процедура сброса. Дождитесь, пока она закончится, а затем проверьте состояние устройства. Если вы в силу каких-то причин не можете сбросить настройки описанным методом, к вашим услугам материалы ниже, где описаны альтернативные варианты. Подробнее:Сброс настроек на АндроидСбрасываем настройки на Samsung

В случае если ни один из вариантов не помог, вероятнее всего, вы столкнулись с аппаратной неполадкой. Исправить её самостоятельно не получится, поэтому обратитесь в сервисный центр.

Заключение

Подводя итоги, отметим, что стабильность и надёжность Android растёт от версии к версии: новейшие варианты ОС от Google менее подвержены проблемам, чем старые, пусть и ещё актуальные. Мы рады, что смогли помочь Вам в решении проблемы. Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Используемые источники:

  • https://itduo.ru/v-prilozhenii-telefon-proizoshla-oshibka-chto-delat/
  • https://comuedu.ru/android/there-was-an-error-in-the-contacts-application-what-to-do-get-rid-of-the-error-android-process-acore.html
  • https://nastroisam.ru/android-process-acore-error/
  • https://hitechboard.ru/page/prilozhenie-kontakty-ne-rabotaet-android
  • https://lumpics.ru/how-remove-app-has-encountered-an-error-android/

I am getting this error when I am trying to read contacts from phone and I included READ_CONTACTS permission in Manifest file. And the strange thing is that it was working fine in Eclipse but when I converted my project to Gradle and run it in Android Studio I’m getting this error.

logcat says:

Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{302f069 29282:com.GP/u0a322} (pid=29282, uid=10322) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS

here is the Manifest code:

<uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />

    <!-- Read Contacts from phone -->
    <uses-permission android:name="android.permission.read_contacts" />
    <uses-permission android:name="android.permission.read_phone_state" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />

Andrii Abramov's user avatar

asked Apr 28, 2015 at 9:47

Navakanth's user avatar

1

Due to the Marshmallow update Requesting Permissions at Run Time the read contact permission not work. The sample code is

import android.Manifest;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Build;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    // The ListView
    private ListView lstNames;

    // Request code for READ_CONTACTS. It can be any number > 0.
    private static final int PERMISSIONS_REQUEST_READ_CONTACTS = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Find the list view
        this.lstNames = (ListView) findViewById(R.id.lstNames);

        // Read and show the contacts
        showContacts();
    }

    /**
     * Show the contacts in the ListView.
     */
    private void showContacts() {
        // Check the SDK version and whether the permission is already granted or not.
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, PERMISSIONS_REQUEST_READ_CONTACTS);
            //After this point you wait for callback in onRequestPermissionsResult(int, String[], int[]) overriden method
        } else {
            // Android version is lesser than 6.0 or the permission is already granted.
            List<String> contacts = getContactNames();
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, contacts);
            lstNames.setAdapter(adapter);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                           int[] grantResults) {
        if (requestCode == PERMISSIONS_REQUEST_READ_CONTACTS) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // Permission is granted
                showContacts();
            } else {
                Toast.makeText(this, "Until you grant the permission, we canot display the names", Toast.LENGTH_SHORT).show();
            }
        }
    }

    /**
     * Read the name of all the contacts.
     *
     * @return a list of names.
     */
    private List<String> getContactNames() {
        List<String> contacts = new ArrayList<>();
        // Get the ContentResolver
        ContentResolver cr = getContentResolver();
        // Get the Cursor of all the contacts
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

        // Move the cursor to first. Also check whether the cursor is empty or not.
        if (cursor.moveToFirst()) {
            // Iterate through the cursor
            do {
                // Get the contacts name
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                contacts.add(name);
            } while (cursor.moveToNext());
        }
        // Close the curosor
        cursor.close();

        return contacts;
    }
}

The sample screenshots :
enter image description here
enter image description here

I got the following source code from here

answered Feb 20, 2016 at 11:40

krishnan's user avatar

krishnankrishnan

2,6912 gold badges28 silver badges35 bronze badges

1

Google Play restricts the use of high risk or sensitive permissions, including the SMS or Call Log permission groups. So in short, even if you ask permission at runtime, there’s a high chance that your app will not be allowed in Google Play.

You can apply for an exception though. Google Play will review the request and grant exceptions on a case by case basis.
The criteria for allowing an exception are mentioned here.

answered Sep 4, 2019 at 9:13

Dieter27's user avatar

Dieter27Dieter27

1342 silver badges8 bronze badges

import android.Manifest;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Build;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    // The ListView
    private ListView lstNames;

    // Request code for READ_CONTACTS. It can be any number > 0.
    private static final int PERMISSIONS_REQUEST_READ_CONTACTS = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Find the list view
        this.lstNames = (ListView) findViewById(R.id.lstNames);

        // Read and show the contacts
        showContacts();
    }

    /**
     * Show the contacts in the ListView.
     */
    private void showContacts() {
        // Check the SDK version and whether the permission is already granted or not.
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, PERMISSIONS_REQUEST_READ_CONTACTS);
            //After this point you wait for callback in onRequestPermissionsResult(int, String[], int[]) overriden method
        } else {
            // Android version is lesser than 6.0 or the permission is already granted.
            List<String> contacts = getContactNames();
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, contacts);
            lstNames.setAdapter(adapter);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                           int[] grantResults) {
        if (requestCode == PERMISSIONS_REQUEST_READ_CONTACTS) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // Permission is granted
                showContacts();
            } else {
                Toast.makeText(this, "Until you grant the permission, we canot display the names", Toast.LENGTH_SHORT).show();
            }
        }
    }

    /**
     * Read the name of all the contacts.
     *
     * @return a list of names.
     */
    private List<String> getContactNames() {
        List<String> contacts = new ArrayList<>();
        // Get the ContentResolver
        ContentResolver cr = getContentResolver();
        // Get the Cursor of all the contacts
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

        // Move the cursor to first. Also check whether the cursor is empty or not.
        if (cursor.moveToFirst()) {
            // Iterate through the cursor
            do {
                // Get the contacts name
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                contacts.add(name);
            } while (cursor.moveToNext());
        }
        // Close the curosor
        cursor.close();

        return contacts;
    }
}

answered Dec 9, 2022 at 6:49

Mehboob Codes's user avatar

According to Google’s Documentation on requesting permission, here’s the thing to bear in mind when you’re handling it.

For example, suppose you list both READ_CONTACTS and WRITE_CONTACTS in
your app manifest.

If you request READ_CONTACTS and the user grants
the permission, and you then request WRITE_CONTACTS, the system
immediately grants you that permission without interacting with the
user.

https://developer.android.com/training/permissions/requesting

answered Feb 18, 2020 at 13:44

Morgan Koh's user avatar

Morgan KohMorgan Koh

2,11128 silver badges24 bronze badges

1

Asked
7 years, 5 months ago

Viewed
1k times

As you can tell I am a newbie to Android :) and struggling with retrieving contacts list. I did add android.permission.READ_CONTACTS in AndroidManifest.xml but still it is not working. I am running it on Windows 10, in case if that makes any difference. Thanks in advance.

09-07 17:27:15.819    5272-5272/? I/art﹕ Not late-enabling -Xcheck:jni (already on)
09-07 17:27:15.819    5272-5272/? I/art﹕ Late-enabling JIT
09-07 17:27:15.821    5272-5272/? I/art﹕ JIT created with code_cache_capacity=2MB compile_threshold=1000
09-07 17:27:15.871    5272-5272/com.sr.phonecontactslist W/System﹕ ClassLoader referenced unknown path: /data/app/com.sr.phonecontactslist-1/lib/x86
09-07 17:27:15.879    5272-5272/com.sr.phonecontactslist D/AndroidRuntime﹕ Shutting down VM
09-07 17:27:15.879    5272-5272/com.sr.phonecontactslist E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.sr.phonecontactslist, PID: 5272
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sr.phonecontactslist/com.sr.phonecontactslist.MainActivity}: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{15540fd 5272:com.sr.phonecontactslist/u0a59} (pid=5272, uid=10059) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{15540fd 5272:com.sr.phonecontactslist/u0a59} (pid=5272, uid=10059) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
            at android.os.Parcel.readException(Parcel.java:1599)
            at android.os.Parcel.readException(Parcel.java:1552)
            at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3550)
            at android.app.ActivityThread.acquireProvider(ActivityThread.java:4778)
            at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2018)
            at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1468)
            at android.content.ContentResolver.query(ContentResolver.java:475)
            at android.content.ContentResolver.query(ContentResolver.java:434)
            at com.sr.phonecontactslist.MainActivity.onCreate(MainActivity.java:20)
            at android.app.Activity.performCreate(Activity.java:6237)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

asked Sep 7, 2015 at 21:40

SolR's user avatar

3

Asked
7 years, 5 months ago

Viewed
1k times

As you can tell I am a newbie to Android :) and struggling with retrieving contacts list. I did add android.permission.READ_CONTACTS in AndroidManifest.xml but still it is not working. I am running it on Windows 10, in case if that makes any difference. Thanks in advance.

09-07 17:27:15.819    5272-5272/? I/art﹕ Not late-enabling -Xcheck:jni (already on)
09-07 17:27:15.819    5272-5272/? I/art﹕ Late-enabling JIT
09-07 17:27:15.821    5272-5272/? I/art﹕ JIT created with code_cache_capacity=2MB compile_threshold=1000
09-07 17:27:15.871    5272-5272/com.sr.phonecontactslist W/System﹕ ClassLoader referenced unknown path: /data/app/com.sr.phonecontactslist-1/lib/x86
09-07 17:27:15.879    5272-5272/com.sr.phonecontactslist D/AndroidRuntime﹕ Shutting down VM
09-07 17:27:15.879    5272-5272/com.sr.phonecontactslist E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.sr.phonecontactslist, PID: 5272
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sr.phonecontactslist/com.sr.phonecontactslist.MainActivity}: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{15540fd 5272:com.sr.phonecontactslist/u0a59} (pid=5272, uid=10059) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
     Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{15540fd 5272:com.sr.phonecontactslist/u0a59} (pid=5272, uid=10059) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
            at android.os.Parcel.readException(Parcel.java:1599)
            at android.os.Parcel.readException(Parcel.java:1552)
            at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3550)
            at android.app.ActivityThread.acquireProvider(ActivityThread.java:4778)
            at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2018)
            at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1468)
            at android.content.ContentResolver.query(ContentResolver.java:475)
            at android.content.ContentResolver.query(ContentResolver.java:434)
            at com.sr.phonecontactslist.MainActivity.onCreate(MainActivity.java:20)
            at android.app.Activity.performCreate(Activity.java:6237)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
            at android.app.ActivityThread.-wrap11(ActivityThread.java)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5417)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

asked Sep 7, 2015 at 21:40

SolR's user avatar

3

Понравилась статья? Поделить с друзьями:
  • Column count doesn t match value count at row 1 как исправить
  • Column ambiguously defined oracle ошибка
  • Color registration automatic adjustment error 2
  • Color plane registration sensor error
  • Color laserjet pro mfp m180n error 11