• Осторожнее с SQLiteDatabase.insert-ами

      Ковыряясь с базами данных в андроиде наткнулся на весьма неприятную вещь: методы SQLiteDatabase для вставки данных работают не совсем так, как написано в документации. Задача была простая: вставить запись и получить ее ключ для использования в другой таблице. В случае, если нужная запись уже имеется, хочется узнать ключ этой старой записи. Оказалось, что получить можно что угодно, кроме этого самого старого ключа.

      Чтобы разобраться в этом пришлось поставить несколько опытов на кошках, зато теперь кое-что прояснилось.

      Читать дальше →
      • +12
      • 7.3k
      • 8
    • Первые впечатления от разработки под Андроидом — пишем handsfree

        Совсем недавно обзавелся андрофоном (LG Optimus) и решил попробовать свои силы в написании софта под него. Почитав про устройство платформы сначала очень порадовался за ее простоту, удобство и логичность. Но на практике все оказалось далеко не так радужно…

        В качестве пробы пера взялся за приложение, которое автоматически отвечало бы на входящие звонки при подключенной гарнитуре. Странно, конечно, что такой простой функции нет в системе «из коробки». Да и в маркете нашлось всего одно приложение, умеющее это делать, причем не слишком надежное. Попробуем исправить это недоразумение.

        На первый взгляд, приложение должно быть очень простым:
        1. В манифесте вешаем receiver на сообщения об изменении статуса линии (TelephonyManager.ACTION_PHONE_STATE_CHANGED) и следим за входящими звонками.
        2. При поступлении звонка проверяем, подключена ли гарнитура. Меня интересовала, прежде всего, bluetooth, но и проводную гарнитуру было бы хорошо отслеживать.
        3. Если гарнитура подключена, говорим телефону ответить на звонок.

        С первым пунктом особых проблем не возникло. А вот остальные два оказались не такими тривиальными.
        Читать дальше →
      • Победа над ОpenOffice?

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

          Вот простой пример как раз такой мелочи. Задача: поменять местами два абзаца с разными стилями.

          Читать дальше →