Страницы

четверг, 1 декабря 2011 г.

Проверка доступности сайта/хоста

boolean isHostReachable(String address) {
    try {
        URL url = new URL(address);

        HttpURLConnection urlc = 
            (HttpURLConnection) url.openConnection();
        urlc.setRequestProperty("User-Agent", "userAgent");
        urlc.setRequestProperty("Connection", "close");
        urlc.setConnectTimeout(1000 * 10);
        urlc.connect();
        if (urlc.getResponseCode() == 200) {
            urlc.disconnect();
            return true;
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return false;
}

В коде ничего сложного нет: создаём подключение к интересующему хосту, задаём user agent, таймайт в миллисекундах, подключаемся и проверяем код ответа, после чего тут же отключаемся.

вторник, 27 сентября 2011 г.

Выделение текста в WebView или как выстрелить себе в ногу.


Понадобилось выделять текст в WebView. Потратил почти два дня поочередных запросов к гуглу, поисков на StackOverflow и изучения исходников стандартного браузера. Решение в итоге нашёл, даже два, но осадок остался. Задача довольно часто нужна и можно было бы описать её решение в документации.

вторник, 13 сентября 2011 г.

Справочно-правовая система Право.ru

Сегодня наконец-то вышла версия мобильного приложения СПС «Право.ru». Теперь все кодексы, федеральные законы, указы и иные нормативные акты всегда под рукой в красивом приложении с user-friendly интерфейсом…

Основа приложения была написана мной еще полгода назад, но позже я перешёл в другую компанию, и дорабатывалось приложение другими разработчиками.

Отображение индикатора ошибки в EditText

Сегодня я узнал, что в EditText можно очень просто отобразить индикатор ошибки и разъясняющий текст. Выглядит это так:

Отладка через WiFi

Как известно, отладка приложений под Android требует подключения устройства через USB-кабель. Однако, недавно я узнал, что кабель вовсе не обязателен. Всё, что для этого нужно - это рутованный девайс и общая WiFi сеть между устройством и компьютером. Рутованный девайс, доступный через сеть, может быть не для всех приемлемым по соображениям безопасности. В любом случае, я бы не стал пользоваться этим способом в публичных сетях.

четверг, 7 июля 2011 г.

Поиск кириллицы в файлах проекта

Конечно, все строки надо выносить в ресурсы. Так и стараюсь делать, но бывает, что в спешке оставляю в коде, да и другие разработчики в команде иногда забывают.

Тем не менее под linux'ом легко найти все файлы, где остались строковые ресурсы. Делается это одной командой:
grep -nirE --exclude-dir="gen" --exclude-dir="bin" "[а-я]" /path/to/project/

-n включает отображение номеров строк в выводе
-i игнорирование регистра символов
-r рекурсивный поиск по всем файлам и директориям
-E указывает на то, что шаблон задан в виде регулярного выражения (extended regexp)
--exclude-dir задаёт директории, в которых поиск производить не нужно. Помимо bin и gen, cюда можно включить .svn или .git (конечно, если вы используете соответствующую VCS), а также каталоги assets, lib и raw (ничего полезного в применении к нашей задаче там не найдётся).

пятница, 1 июля 2011 г.

Selloby

Selloby - мобильный сервис частных объявлений для быстрого и увлекательного поиска всего на свете: для покупки и продажи вещей, аренды квартир, поиска работы, знакомств и развлечений.

Написано мной в команде с двумя разработчиками.