三星galaxy S4和一些设备仅在使用 Intent Action_Insert
时支持结构化邮政ArrayList<ContentValues> data = new ArrayList<ContentValues>();
...
ContentValues name = new ContentValues();
name.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
name.put(StructuredPostal.STREET, bundle.getString(StructuredPostal.STREET));
name.put(StructuredPostal.CITY, bundle.getString(StructuredPostal.CITY));
name.put(StructuredPostal.REGION, bundle.getString(StructuredPostal.REGION));
name.put(StructuredPostal.NEIGHBORHOOD, bundle.getString(StructuredPostal.NEIGHBORHOOD));
name.put(StructuredPostal.POSTCODE, bundle.getString(StructuredPostal.POSTCODE));
name.put(StructuredPostal.COUNTRY, bundle.getString(StructuredPostal.COUNTRY));
data.add(name);
Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);
intent.putExtra(ContactsContract.Intents.Insert.NAME, contactName);
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.HONEYCOMB)
intent.putParcelableArrayListExtra(Insert.DATA, data);
else
intent.putExtra(ContactsContract.Intents.Insert.POSTAL, address);
现在,在4.2上运行的Galaxy S3不支持结构化地址,也不使用上面的代码显示地址。
那么我如何找到一个设备是否支持结构化邮政地址,以便我可以为它们提供支持?
注意:如果我使用intent.putExtra(ContactsContract.Intents.Insert.POSTAL, address);
,Galaxy S3会显示使用intent.putParcelableArrayListExtra(Insert.DATA, data);
的地址,而这个S3无法显示地址。
答案 0 :(得分:1)
尝试保存结构化字段(对于支持它们的电话)以及StructuredPostal.FORMATTED_ADDRESS
。不过,您需要自己进行格式化。这似乎是VCardEntry的作用。