Я не знаю, решит ли это Вашу проблему виртуальных каталогов, но я использую это для MapPath:
public static string MapPath(string path)
{
if (HttpContext.Current != null)
return HttpContext.Current.Server.MapPath(path);
return HttpRuntime.AppDomainAppPath + path.Replace("~", string.Empty).Replace('/', '\\');
}
Кажется, у вас все в порядке. Не могли бы вы уточнить «получение большого количества контактов, которых нет в списке набора номера»? Android придумывает людей? Или вы видите людей с адресами электронной почты, но без номеров телефонов (которые, следовательно, могут не отображаться в Dialer)?
Обратите внимание, что Contacts.People
предназначен для Android 1.6 и ниже. Этот поставщик устарел, начиная с Android 2.0, и заменен набором поставщиков ContactsContract
.
Ну, спасибо за ответ сначала. Просто чтобы пролить свет на это.
Я просто хотел получать электронные письма только для контактов на моем телефоне. Группа «Мои контакты». Я видел, что это группа, которую использует ContactList Activity.
Я закончил делать что-то вроде этого:
c = cr.query(myGroupUri, mEmailsProjection, null, null, null);
....
c.close();
c = cr.query(
Contacts.ContactMethods.CONTENT_URI,
mContactsProjection, contactIds, null, null
);
....
c.close();
Просто запросил сначала группу, а затем таблицу электронных писем.