and*_*per 14 android date android-contacts android-sqlite
我正在尝试更新联系人数据,并将每个数据的生日.
似乎对于我尝试的每个设备(我甚至没有尝试过那么多设备),插入有一个或多个这些问题:
我尝试过使用时间戳和完整的ISO8601格式(因为这个链接,意思是"yyyy-MM-dd HH:mm:ss").我也试过"yyyy-MM-dd",我尝试使用设备日期的默认格式.
所有人都有上述问题(每个问题至少有一个).
这是一段代码:
final Date birthdate = ...
// String birthdateStr = new SimpleDateFormat("yyyy-MM-dd").format(birthdate);
// String birthdateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(birthdate);
// String birthdateStr = new SimpleDateFormat(((SimpleDateFormat) java.text.DateFormat.getDateInstance(java.text.DateFormat.DEFAULT, Locale.getDefault())).toLocalizedPattern(),Locale.getDefault()).format(birthdate);
String birthdateStr = Long.toString(birthdate.getTime()/1000);
final Builder builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValue(Data.RAW_CONTACT_ID, ...)
.withValue(ContactsContract.Data.MIMETYPE, Event.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, birthdateStr)
.withValue(ContactsContract.CommonDataKinds.Event.TYPE,
ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
Run Code Online (Sandbox Code Playgroud)
当然,我也在这里看过这个问题,并发现了类似的问题,但是提出的解决方案似乎都没有奏效.
我应该如何将生日插入联系人?为什么每个设备都有自己的方式来解释日期?生日的正确标准是什么?
根据这个答案,我会说您应该使用YYYY-MM-DD格式,但您需要定义帐户类型和帐户名称.所以添加这些行:
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
Run Code Online (Sandbox Code Playgroud)
如果这有帮助,请告诉我.
| 归档时间: |
|
| 查看次数: |
553 次 |
| 最近记录: |