Добавить контакт, не используя «учетную запись Google»?

32

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

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

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

Я использую стандартный Android 4.0.2 на Galaxy Nexus.

gspr
источник

Ответы:

17

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

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

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

Источник

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

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

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

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

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

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

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

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

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

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

Создайте другую (кроме вашей текущей) учетную запись 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 ;-)

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

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

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

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

Лиам W
источник
2
Похоже, здесь есть трекер ошибок: code.google.com/p/android/issues/detail?id=26834
ZnewmaN
2

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

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

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

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

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

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

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