Добавить контакт без использования «гугл-аккаунта»?

Когда я получил свой телефон, я импортировал свои старые контакты, написав небольшую программу, которая использует API контактов . Это сработало отлично, и все мои контакты хранились локально на телефоне (синхронизация с Google отключена). Теперь мне нужно добавить новый контакт вручную через стандартное меню контактов. У меня есть только возможность добавить новый контакт в мою «учетную запись Google», нет выбора для локального хранилища. Все контакты, которые я добавил с помощью моей программы, правильно указаны как «только телефон, несинхронизированный контакт», и это то, что я хотел бы, чтобы произошло и с новыми контактами, которые я добавляю из стандартного меню контактов.

Я знаю об этом вопросе , но в меню настроек контактов, описанном в ответе на этот вопрос, вообще нет настроек хранилища.

Что мне делать, чтобы добавить новые контакты в локальное хранилище? Я мог бы, конечно, использовать программу, которую написал, но в конечном итоге это кажется немного громоздким, и наверняка должен быть способ сделать это через меню?

Я использую Android 4.0.2 на Galaxy Nexus.

Ответы (7)

Отключите приложение Google Contacts Sync ( Settings -> Apps -> All -> GoogleContactsSyncAdapter-> Отключить) и перезагрузите компьютер, затем попробуйте снова добавить контакт. Если это не помогает, и вы рутировали свой Android, вы можете удалить /system/app/GoogleContactsSyncAdapter.apkего с помощью файлового браузера (но сначала сделайте резервную копию!). В любом случае, в следующий раз, когда вы создадите контакт, вы должны быть проинформированы о том, что контакт будет храниться локально.

Насколько я могу судить, это ничего не сломает.

Однако, если вы также используете другую учетную запись с функцией синхронизации, такую ​​как Microsoft Exchange (для горячей почты), вам также придется удалить ее. В случае Microsoft Exchange лучше всего удалить всю учетную запись, потому что простое отключение приложения в любом случае не позволит вам получать электронные письма.

Источник

Работает на Android 7.1, рут не нужен (хотя он у меня был). Название приложения там немного другое, оно с пробелами и без части "Адаптер".
Кто-нибудь знает, активируется ли приложение GoogleContactsSyncAdapter снова (автоматически) при установке обновлений системы или системного приложения?
Для пользователей, использующих другие языки: он может называться по-другому. Вероятно, он имеет синий значок адресной книги (по крайней мере, в Android 7). Если это отображается com.google.android.syncadapters.contactsна странице сведений, вы правы.
Немецкий: дополнительно вам нужно меню с тремя точками вверху справа, активируйте «Systemprozesse anzeigen» и найдите «Google-Kontakte synchronisieren». Не могу не разглагольствовать: зачем это нужно, почему у меня не всегда есть свобода выбора между локальным и синхронизированным. Просто догадайтесь, что это говорит нам о мнении Google о наших умственных способностях.

По сравнению с моим первым ответом , есть другое (более простое) решение, которое также сработало для меня:

Используйте приложение MyLocalAccount для создания локальной учетной записи. Затем вы можете легко синхронизировать свои контакты с вашим ПК с помощью MyPhoneExplorer .

Где MyLocalAccount сохраняет свои данные?
После установки MyLocalAccount перейдите в «Настройки» > «Учетные записи» > «Добавить учетную запись» > «MyLocalAccount». Создаваемая «учетная запись» по умолчанию — «Локальные контакты». Я использую это с Contact Editor Pro для редактирования и создания контактов, потому что CEP показывает, к какой учетной записи принадлежит данный контакт, и позволяет вам изменить это.
Также обратите внимание, что это позволяет избежать подключения вашего телефона к серверам Google для аутентификации (как в случае с другими методами, когда вы создаете и удаляете учетную запись Google впоследствии). Любое подключение к серверу Google выдает ваше местоположение в Google для тех, кто заботится о конфиденциальности. Теперь я уверен, что для полного предотвращения отправки запросов на серверы Google с вашего телефона Android потребуется больше работы, но это только начало.

Одно решение, которое сработало для меня, заключается в следующем:

Разместите свой собственный экземпляр ownCloud , а затем синхронизируйте свои контакты через CalDav ( Google Play или бесплатно на F-Droid ).
Альтернативой может быть CardDAV для контактов и ICalSync2 для календарей.

Для другого (более простого) решения см. мой второй ответ .

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

Может быть лучший обходной путь для этой проблемы, но я только что попробовал это:

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

Создайте другую (не текущую) учетную запись Google, например Locale.Phonebook@gmail.com.

  • Добавьте его в свой телефон. Сделайте его тем, который он использовал для новых контактов по умолчанию.
  • Удалите аккаунт в Google еще раз.

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

Если у вас были контакты в вашей обычной учетной записи, вам придется каким-то образом перенести их из обычной учетной записи Google в специальную новую учетную запись.

Я использовал программное обеспечение My Phone Explorer (MPE), чтобы сделать это, но это сложно.

  • Во-первых, вам нужно установить папку / учетную запись, используемую для синхронизации контактов в клиенте MPE на телефоне, с той, которая все еще содержит контакты.
  • Затем синхронизируйте. Это позволит получить контакты на ПК.
  • На ПК скопируйте ВСЕ контакты в буфер обмена. Также сделайте резервную копию с помощью MPE.
  • Затем удалите все контакты на ПК (выберите один, затем нажмите Ctrl-A, чтобы выбрать все, затем удалите).
  • Затем синхронизируйте. Это удалит контакты из (обычной) учетной записи Google.

Теперь измените папку/учетную запись, используемую для синхронизации контактов в клиенте MPE на телефоне, на новую. Также измените папку/учетную запись, в которую попадают новые контакты (на новую учетную запись).

  • На ПК снова вставьте все контакты в приложение.
  • Затем снова синхронизируйтесь. Это создаст контакты в новой учетной записи.

Теперь ваши контакты хранятся в учетной записи Google (что делает ваш телефон ICS/Jelly Bean счастливым), но вы уверены, что контакты не могут быть случайно синхронизированы с Google (что, надеюсь, сделает вас счастливыми).

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

Кто-нибудь может запрограммировать нового контент-провайдера для контактов с помощью локального магазина?

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

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

Причина вашего вопроса о том, что Google заставляет вас делать такие вещи, - везде облако , Google Диск, электронная почта Google, Google Music и т. д., не говоря уже о том, что учетная запись связана с Play Store. Вы, конечно, не обязаны его использовать! Это часть Google, и производители соглашаются одобрить телефоны, чтобы иметь опыт работы с Google ». Если телефон не соответствует критериям, это просто, всегда можно, если хотите, прошить гаппсы поверх него. Если параноик, выключите ПК. + смартфоны, закопайте в саду... :)
@Arno: Спасибо за обходной путь, но я не могу его принять. Я все еще надеюсь на более красивое решение.
@t0mm: что за чушь собачья. Прежде всего, очевидно, что функциональность все еще существует - я случайно получил желаемое поведение в моей маленькой программе, когда я только что использовал все функции API, которые выглядели очевидными для добавления контактов! Без решения проблемы я фактически вынужден использовать облако (или не добавлять контакты).
@gspr: На что ты обижаешься? Эй, подождите, вы имеете в виду разработку, поскольку я случайно получил желаемое поведение в моей маленькой программе, когда я только что использовал все функции API, которые выглядели очевидными для добавления контактов! ...
@ t0mm13b: я не обижен. Ваш комментарий звучит так: «Облако прекрасно, поэтому вы должны принять его и использовать, а если вы этого не сделаете, вы просто параноик». Я предпочитаю не упоминать об этом чувстве к облаку; локальные контакты - это разумная функция (та, которая предусмотрена в API и раньше выставлялась в программе контактов, не меньше), независимо от того, как я отношусь к тому, что Google хранит список всех людей, которых я знаю, только для того, чтобы я мог позвонить те люди.
@gspr: Аааа... теперь понял! tbh, облако — это модное слово, которое сводит меня с ума! Это ничем не отличается от ftp-сайта, когда вы делаете это в командной строке. Но я полностью согласен с тем, что местное контактное лицо должно быть на месте, но в конечном итоге Google владеет Android, и производители, которые хотят выпустить телефоны Android, должны получить одобрение. Другими словами, это путь Google или высокий уровень. кстати, к сожалению... /я пожимаю плечами...

Начиная с ICS, Google перестал разрешать вам хранить контакты локально.

Некоторые производители добавляют это вручную в свои собственные ПЗУ.

Теперь вам нужно синхронизировать его с типом учетной записи.

Похоже, здесь есть система отслеживания ошибок: code.google.com/p/android/issues/detail?id=26834 .

Вы можете использовать локальный календарь из репозитория Android F-Droid FOSS.

Я использую его без каких-либо проблем на моем телефоне.

Аккуратный! Контакты тоже делает? На сайте нигде не написано...
Нет, это приложение предназначено только для локального календаря. Обходной путь для локальных контактов в CyanogenMod — отключить приложение «Синхронизация контактов Google», после чего вы можете снова добавить локальные контакты устройства. Я не знаю, работает ли это и в других приложениях для Android — просто попробуйте :-)

Если у вас есть root-права, используйте Titanium Backup Pro и заморозьте «Google Contact Sync». Это будет красным текстом, но не беспокойтесь об этом, все равно заморозьте его.

Теперь, если вы зайдете, например, в WhatsApp и добавите контакт, он выдаст вам сообщение о добавлении учетной записи, нажмите «Сохранить локальный». Готово, сохранение локального контакта теперь будет вариантом по умолчанию.

Чтобы по какой-либо причине отменить процесс, просто разморозьте приложение из Titanium Backup Pro.

В основном то же, что описано в этом ответе , и запасной вариант на случай, если описанная там процедура не работает.