Просмотр учетных записей
Мы начнем упражнение с написания программы, которая будет выводить список учетных записей. Фрагмент кода для получения списка учетных записей уже приводился. Взгляните на код класса AccountsFunctionTester. В загружаемом проекте также доступен соответствующий Java-файл.
На заметку! По мере представления и исследования Java-кода, необходимого для работы с контактами, вы отметите неоднократное использование трех следующих переменных.
mContext. Переменная, указывающая на активность.
mReportTo. Переменная, реализующая интерфейс записи в журнал (IReportBack — вы найдете этот Java-файл в загружаемом проекте), который может использоваться для фиксации сообщений с целью тестирования активности, применяемой в этой.
Utils. Статический класс, который инкапсулирует очень простые служебные методы.
Мы решили не приводить код упомянутых выше классов, поскольку это могло бы отвлечь от понимания ключевой функциональности API-интерфейса для работы с контактами. При желании можете просмотреть код самостоятельно, загрузив проект для данной.
Ключевой функцией, которую следует просмотреть, является testAccounts. Остальной код, такой как BaseTester, IReportBack и т.д., предназначен в основном для вспомогательных целей. С кодом этих классов можно ознакомиться в загружаемом проекте для данной. Он не требуется для понимания материала этого раздела, к тому же сейчас будут даны краткие объяснения упомянутых классов поддержки.
Класс BaseTester хранит ссылки на два объекта. Первая — это активность (передаваемая как ctx), а вторая — простой объект, который реализует интерфейс IReportBack. Этот интерфейс берет строковое сообщение и отображает его либо на экране активности, либо в LogCat. Таким образом, обращение к IReportBack просто означает вызов функции регистрации в журнале. Подобные детали вторичны; по большому счету, вызовы reportBack можно считать обращениями для регистрации сообщения.
Имя и тип каждой учетной записи и обращается к интерфейсу IReportBack для их вывода в журнал. До тех пор, пока есть управляющая активность, которая вызывает метод testAccounts, этот код может сообщать имя и тип учетной записи.
Запустив этот пример приложения, который можно загрузить для данной, вы у главную активность с множеством пунктов меню. Каждый пункт меню будет вызывать метод класса для тестирования определенной функции. Остальные пункты меню, относящиеся к другим частям этой. Экран, снимок, отображается после щелчка на кнопке More (Еще), представленной. На этих двух рисунках показаны все пункты меню, доступные в примере приложения.
В эмуляторе, в котором производилось тестирование, была настроена только одна учетная запись Google, поэтому. видна только она.
Просмотр агрегированных контактов
Давайте рассмотрим фрагменты кода http://rusmsbill.com/uslugi/sms-platezhi, предназначенные для просмотра агрегированных контактов. Будут продемонстрированы три аспекта, относящиеся к агрегированным контактам.
Обнаружение всех полей, возвращаемых с помощью URI, которому известно, как читать агрегированные контакты.
Вывод списка всех агрегированных контактов.
Обнаружение всех полей, возвращаемых курсором, основанным на URI поиска.
Для чтения контактов в файле манифеста должны быть запрошены следующие права доступа:
android.permission.READ CONTACTS
Поскольку тестируемая функциональность имеет дело с поставщиками контента, URI и курсорами, взглянем на некоторые полезные фрагменты кода. (Эти фрагменты кода доступны либо в utils.java, либо в каких-то базовых классах, производных от класса BaseTester из загружаемого проекта для данной.)
Функция getACursor принимает строку URI и строковую конструкцию where, а возвращает курсор.
Функция getColumnValue, возвращает значение столбца с заданным именем из текущей строки в курсоре. Значение возвращается в виде строки независимо от типа, лежащего в его основе.
Функция getCursorColumnNames, получает любой курсор и возвращает список всех доступных в нем столбцов. Это удобно при просмотре новых URI с целью обнаружения типов возвращаемых ими полей. Метод особенно полезен для документирования таких столбцов в Java-коде.
В этом разделе мы главным образом просматриваем курсор, возвращаемый URI агрегированных контактов. Каждая строка, возвращаемая результирующим курсором контакта, будет иметь определенное количество полей. В нашем примере нужны не все поля, а только некоторые. Их можно абстрагировать в другой класс по имени AggregatedContact.
Опубликовал katy
February 19 2015 18:30:11 ·
0 Комментариев ·
2810 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.