簡體   English   中英

如何檢測Android手機通訊錄應用支持結構化郵政地址?

[英]How to detect an android phone contacts app supports Structured Postal Address?

三星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);顯示地址intent.putParcelableArrayListExtra(Insert.DATA, data); 這個S3無法顯示地址。

嘗試保存結構化字段(對於支持它們的電話)以及StructuredPostal.FORMATTED_ADDRESS 不過,您需要自己進行格式化。 這似乎是VCardEntry所做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM