我希望从4.0及以上版本中获取SIM卡和手机的所有联系人,但需要手机类型。 我看到了这个链接How to get all contacts from phonebook & SIM card in Android?
但我没有收到联系方式。
答案 0 :(得分:3)
当我为SIM卡联系人获取CURSOR时,它为我提供了5列字段,分别是名称,号码,额外号码,电子邮件和_id 。
所以它实际上没有为我们提供类似于 mime-type 字段的“联系电话类型”字段,如电话联系人。
如果可以的话,也许可以,如果其他人可以完成此任务。
我已经发布了我在我的应用程序中使用的代码。
尝试{ 字符串m_simPhonename = null; String m_simphoneNo = null;
Uri simUri = Uri.parse("content://icc/adn");
Cursor cursorSim = this.getContentResolver().query(simUri,null,null,null,null);
Log.i("PhoneContact", "total: "+cursorSim.getCount());
while (cursorSim.moveToNext())
{
m_simPhonename =cursorSim.getString(cursorSim.getColumnIndex("name"));
m_simphoneNo = cursorSim.getString(cursorSim.getColumnIndex("number"));
m_simphoneNo.replaceAll("\\D","");
m_simphoneNo.replaceAll("&", "");
m_simPhonename=m_simPhonename.replace("|","");
Log.i("PhoneContact", "name: "+m_simPhonename+" phone: "+m_simphoneNo);
if(m_simphoneNo.length()>0){
if(m_simPhonename!=null){
}else{
m_simPhonename = m_simphoneNo;
}
callbackDB.InsertContacts(null, m_simPhonename+"="+m_simphoneNo, m_simphoneNo, null);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}