【问题标题】:App running on HTC but Not on samsung for android (Related to Contacts)应用程序在 HTC 上运行,但在 samsung for android 上不运行(与联系人相关)
【发布时间】:2012-04-04 09:41:23
【问题描述】:

我已经为 ContactsContract 创建了一个应用程序...我创建了一个微调器,它可以配置所有帐户,因此用户可以选择联系人类型,比如 gmail(com.google)、phoneBook 等等... .

现在,如果我选择电话簿,那么联系人就会完美地添加到电话簿中。 当我选择 gmail 选项时,它在我的 htc 手机上完美运行...联系人被添加,同步后,我也可以在我的 gmail 帐户中看到。

但是,当我在任何三星手机上测试时,同样的事情,它并没有被添加到我的 gmail 的联系人中......

我很困惑……

感谢任何帮助。提前谢谢...

【问题讨论】:

  • 您的三星手机上的哪个 Android 版本..?
  • 我的三星手机 2.3.3 版和我的 htc 手机 2.2.0 版
  • @Post Code 您尝试添加联系人以添加到电话簿中。

标签: android android-contacts contactscontract


【解决方案1】:

电话号码存储在自己的表中,需要单独查询。要查询电话号码表,请使用 SDK 变量 ContactsContract.CommonDataKinds.Phone.CONTENT_URI 中存储的 URI。使用 WHERE 条件获取指定联系人的电话号码。

if (Integer.parseInt(cur.getString(
       cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
    Cursor pCur = cr.query(
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
    null, 
    ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
    new String[]{id}, null);
    while (pCur.moveToNext()) {
    // Do something with phones
    } 
    pCur.close();
}

对 Android 联系人 SQLite 数据库执行第二次查询。根据存储在 ContactsContract.CommonDataKinds.Phone.CONTENT_URI 中的 URI 查询电话号码。联系人 ID 作为 ContactsContract.CommonDataKinds.Phone.CONTACT_ID 存储在电话表中,WHERE 子句用于限制返回的数据。

电子邮件地址

查询电子邮件地址类似于电话号码。必须执行查询才能从数据库中获取电子邮件地址。查询存储在 ContactsContract.CommonDataKinds.Email.CONTENT_URI 中的 URI 查询邮箱地址表。

Cursor emailCur = cr.query( 
        ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
        null,
        ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
        new String[]{id}, null); 
    while (emailCur.moveToNext()) { 
        // This would allow you get several email addresses
            // if the email addresses were stored in an array
        String email = emailCur.getString(
                      emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
        String emailType = emailCur.getString(
                      emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
    } 
    emailCur.close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多