- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过执行以下代码,我可以解析所有 Android 通讯簿项目和附加的邮政地址:
Cursor cursor = mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor addresses = mContext.getContentResolver().query( ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, null, ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID +" = "+ contactId, null, null);
while (addresses.moveToNext()) {
String city = addresses.getString(addresses.getColumnIndex( ContactsContract.CommonDataKinds.StructuredPostal.CITY));
// other structured address fields.
}
}
我对无地址条目不感兴趣,有谁知道我是否可以在第一个查询中只选择具有结构化地址的地址簿项目,这样我就不必浪费时间解析所有这些项目?
最佳答案
是的,有。我也一直在寻找相当长的时间来快速和正确地获得它。我想到了这个:
private ArrayList<CustomAddressObject> getPostalAddresses(){
Cursor postals = null;
ArrayList<CustomAddressObject> results = null;
try{
postals = getContentResolver().query(
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
null,
null,
null);
int postFormattedNdx = postals.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS);
int postTypeNdx = postals.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE);
int postLabelNdx = postals.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.LABEL);
int postNameNdx = postals.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
if(postals.getCount() == 0){
//No contacts with addresses
return null;
}
results = new ArrayList<CustomAddressObject>();
while (postals.moveToNext()) {
CustomAddressObject address = new CustomAddressObject ();
address.address = postals.getString(postFormattedNdx);
address.contactName = postals.getString(postNameNdx);
Log.d(TAG, "Contact name: "+address.contactName);
if(address.address != null && address.contactName != null){
switch (postals.getInt(postTypeNdx)) {
case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_CUSTOM:
address.label = postals.getString(postLabelNdx);
if(address.label == null){
address.label = getString(R.string.contacts_type_other);
}
break;
case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME:
address.label = getString(R.string.contacts_type_home);
break;
case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK:
address.label = getString(R.string.contacts_type_work);
break;
case ContactsContract.CommonDataKinds.StructuredPostal.TYPE_OTHER:
address.label = getString(R.string.contacts_type_other);
break;
default:
address.label = null;
}
if(!results.contains(address))
results.add(address);
}else{
//Some phones can store some information inside the postals that don't actually contain an address...
Log.d(TAG, "Contact has no address with id : "+contactId);
Log.d(TAG, "Contact has no address with name: "+getContactName(contactId));
}
}
}
catch (IllegalStateException e) {
// TODO: handle exception
}finally{
if(postals != null && !postals.isClosed()){
postals.close();
}
}
return results;
}
关于android - 如何仅获取在 Android 中附加了 StructuredAddress 的联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260455/
十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) @ 目录 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) 1. 基本
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @ 目录 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 1. 基本介绍
在sql语句执行前 DB::enableQueryLog(); sql sql sql sql sql dd(DB::getQueryLog()); ?
本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下: 使用global在方法里面声明外部变量为全局变量,即可以调用该变量。 示例1. global基本用法
SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前sessio
性能测试,在编写代码后,单元测试及性能测试是重要的验收点,好的性能测试可以让我们提前发现程序中存在的问题。 测试用例 在Rust中,测试通常有两部分,一部分是文档测试,一部分是模块测试。 通常我们
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
一个星期以来,我一直在努力寻找如何做到这一点,但一直无法做到。我的 html 导航栏看起来像这样。
我们经常在程序设计中用到的数组,同样在脚本中很常用。本节就详细介绍一下数组,以及哈希表在PowerShell中的使用。 数组 在PowerShell中,声明一个变量为数组时,需要使用符号&quo
方法一:先查询出所有记录,然后在逻辑层转化为拼音首字母后查询,显然傻瓜才会这么做。 方法二:在需要搜索的表中添加一个字段用于存放被检索字段内容对应的拼音,在搜索的时候同时去查询这两个字
intellij idea2021是一款java开发神器,功能丰富好用,本文提供其安装包、破解版、补丁、绿色版、激活码等下载,手把手教大家完美安全永久安装破解,亲测绝对可以永久激活。 此方法支持所有的
我在构建一个网站时遇到了一个问题,即我的 h1 内容与我的导航栏重叠。我在 css 中使用了 margin-top 标签,但它不起作用。
前言 时隔2年.(PS:其实陆陆续续在优化,不过没发博客).. .本组件又迎来了新的更新... 很久没更新博客了.生了娃,换了工作单位,太忙了..实在抱歉 NE
为什么 CLGeocoder reverseGeocodeLocation 在查找地址时返回具有不同纬度/经度的地标? 背景:就用户在 map 上“长按”以放置图钉而言,但我的代码对此进行了反向地理编
我是一名优秀的程序员,十分优秀!