Я использую ContactsContract для вставки RawContacts в мое приложение. Следующий код (и показ вставленного контакта в контактном приложении) работает на всех устройствах, но не на Sony Xperia (Android 4.4.4).Android, Insert RawContact не отображается на Sony Xperia
ContentValues p=new ContentValues();
p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, getActivity().getPackageName());
p.put(ContactsContract.RawContacts.ACCOUNT_NAME,
DataHelper.getAppName(getActivity()));
Uri rowcontact = null;
long rawcontactid = 0;
try {
rowcontact = getActivity().getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, p);
rawcontactid = ContentUris.parseId(rowcontact);
Log.d(DEBUG_KEY, "CONTACT ADDED: " + rawcontactid);
}catch(Exception e){
Log.d(DEBUG_KEY, "CONTACT ADDED FAILED 1: " + e.getMessage());
return "";
}
На устройстве Sony Xperia отсутствует ошибка или исключение. На консоли отображается правильный идентификатор CONTACT-ADDED-ID. Но в приложении для контакта android недавно вставленный (Raw) -Contact не отображается. Я включил все группы и т. Д. В настройках фильтра в контактном приложении.
Какова цель установки 'ACCOUNT_TYPE' в' getActivity(). GetPackageName() '? – pskink
Из документации google: для обеспечения уникальности новые типы учетных записей следует выбирать в соответствии с соглашением об именах Java-пакетов. Таким образом, учетная запись Google имеет тип «com.google» http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html – appagenturbw
, но вы хотите добавить контакт в «учетную запись Google», t вы (чтобы приложение-приложение могло видеть его)? – pskink