android如何以编程方式标记联系人的电话号码

时间:2013-02-08 12:49:32

标签: android sms contacts phone-number

我做了很多研究但找不到任何帮助;

我的问题是:我需要创建一个应用程序,用户可以选择手机上的某些联系人添加到此应用程序中,以后他/她可以通过特殊模板中的短信与他们进行通信。但是用户只需要在此应用程序中选择一个对该用户有效的电话号码。这个选择必须要求以后登录。

我能够使用lookupkey检索联系人和他们的电话号码(它将保存在我的应用程序中作为预选用户的参考),但我无法弄清楚如何标记所需的电话号码,我想的是在电话号码上添加一个标志,但我不知道如何,我不知道这是否是正确的方法,我想将所选的电话号码设置为主要,然后在需要时查询...或者只是保存电话号码id(但我不确定如果用户更改了电话号码,保存ID是否安全)...

thx任何帮助...

2 个答案:

答案 0 :(得分:1)

经过长时间的反复试验后,我找到了解决问题的方法。我将使用联系人查找键来存储联系人和电话ID来存储电话号码......如下:

String selection =  ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY + " = '" + lookupkey+ "' and "+Phone._ID+"='"+phoneid+"'";
        String[] projection =new String[] {Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER};
         Cursor managedCursor = getContentResolver()
                .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                 projection, selection, null,  Phone.DISPLAY_NAME + " ASC");

答案 1 :(得分:0)

我对这些东西有点新鲜。据我了解,id匹配很快,但可能不稳定。如果key + id匹配失败,您还应该仅使用密钥尝试较慢的匹配 - Jeffrey Scofield的SQL选择字符串可以更改为尝试id-and-key OR key-only(信任查询优化器以确定id匹配的优先级)

我没有太多运气找到有关长期存储密钥的智慧的信息。