Android,插入 RawContact 未在 Sony Xperia 上显示
Android, Insert RawContact not showing on Sony Xperia
我正在使用 ContactsContract 在我的应用程序中插入 RawContacts。以下代码(并在联系人应用程序中显示插入的联系人)适用于所有设备,但不适用于 Sony Xperia (Android 4.4.4)。
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 "";
}
在索尼 Xperia 设备上没有错误或异常。控制台显示正确的 CONTACT-ADDED-ID。但是在 android 联系人应用程序中,新插入的 (Raw)-Contact 没有显示。我在联系人应用程序的过滤器设置中启用了所有群组等。
好的。问题解决了。在 Sony Xperia 设备上,您必须
(1) 指定现有 (google) 帐户
p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google");
p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "google_account_username_on_device");
或 (2) 不指定任何帐户类型详细信息
//p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google");
//p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "google_account_username_on_device");
在摩托罗拉或 Nexus 等其他设备上,您可以指定一个不存在的自定义帐户,例如:
p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "my.app.name");
p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "APP NAME");
我正在使用 ContactsContract 在我的应用程序中插入 RawContacts。以下代码(并在联系人应用程序中显示插入的联系人)适用于所有设备,但不适用于 Sony Xperia (Android 4.4.4)。
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 "";
}
在索尼 Xperia 设备上没有错误或异常。控制台显示正确的 CONTACT-ADDED-ID。但是在 android 联系人应用程序中,新插入的 (Raw)-Contact 没有显示。我在联系人应用程序的过滤器设置中启用了所有群组等。
好的。问题解决了。在 Sony Xperia 设备上,您必须
(1) 指定现有 (google) 帐户
p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google");
p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "google_account_username_on_device");
或 (2) 不指定任何帐户类型详细信息
//p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google");
//p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "google_account_username_on_device");
在摩托罗拉或 Nexus 等其他设备上,您可以指定一个不存在的自定义帐户,例如:
p.put(ContactsContract.RawContacts.ACCOUNT_TYPE, "my.app.name");
p.put(ContactsContract.RawContacts.ACCOUNT_NAME, "APP NAME");