【问题标题】:Android ContactsContract and building across multiple SDK versionsAndroid ContactsContract 和跨多个 SDK 版本构建
【发布时间】:2010-01-11 21:13:33
【问题描述】:

我需要我的应用在所有 Android 版本上运行,但联系人 API 在 2.0 中发生了变化。

在 SDK 1.6 及更早版本中,我使用 android.provider.Contacts 来查询联系人数据库,但这在 2.0 中不起作用

相反,对于 2.0,我使用 android.provider.ContactsContract。这带来了一个问题:当我有 ContactsContract 的代码时,我的应用程序将无法为 1.6 及更早版本构建。

我是否需要拥有两个单独的应用版本(一个用于

【问题讨论】:

    标签: java android contacts


    【解决方案1】:

    您可以使用 Java 反射在 Android 上同时支持这两个版本。有趣的是,the answer to your question can be found in a recent question about reflection used to solve this exact problem

    Uri baseUri = Contacts.Phones.CONTENT_FILTER_URL;
    try {
        Class<?> c = Class.forName("android.provider.ContactsContract$PhoneLookup");
        baseUri = (Uri) c.getField("CONTENT_FILTER_URI").get(baseUri);
    } 
        catch (Exception e) {
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-27
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多