2023-06-06

Получение SMS сообщений в Telegram

Иногда бывает нужно пересылать входящие SMS сообщения в Telegram. Раньше в Play Market было полно приложений умеющих это делать, но последнее время они куда-то все подевались. Возможно, дело в искуственных ограничениях подобных приложений самим Play Market, возможно еще в чем-то.

К счастью, в Android можно установить приложения не только из Play Market. Я нашел на github вот такое простое приложение. Сайт приложения не открывается, но само приложение можно скачать с github и оно прекрасно работает и без сайта.

Приложение имеет максимально простой пользовательский интерфейс и требует для работы всего три параметра - ключ робота, ID канала и номер телефона.

Ключ робота выдается служебным роботом @BotFather, этот робот создает токены авторизации для всех остальных роботов в Telegram.

С ID канала интереснее. С роботами в Telegrаm можно работать напрямую а можно добавить робота в свою группу и взаимодействовать с ним оттуда. В данном случае подразумевается именно второй вариант.

Создаем новую группу в Telegram, добавляем в нее помимо себя, только что созданного робота. Чтобы узнать ID чата нужно кратковременно добавить в чат еще одного робота @RawDataBot - этот робот покажет нам ID чата которое и нужно использовать при настройке приложения. После того как мы узнали id чата робота @RawDataBot можно из чата удалить.

В качестве номера телефона я указал свой основной телефон.

Если все настроено правильно все новые SMS сообщения начнут приходить в созданный Telegram чат.

 

Оставить комментарий

 
  2022-01-19

Назойливая карусель обоев в телефонах Xiaomi Mi

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

В конце концов нашел как это отключить - идем в Settings, выбираем "Always On Display & Lock Screen" находим раздел "Wallpaper Carousel" заходим туда и вырубаем ее к чертям.

Вырубить просто так сразу не получится - сначала приложение предложит вместо выключения функционала использовать собственные фото - не ведемся на развод, отказываемся. Затем приложение попросит дать фидбек, что именно не понравилось - вежливо отвечаем, или невежливо посылаем.

После вышепроделанного оказывается что карусель все еще на месте! Не нужно отчаиваться! Идем в настройки обоев и еще раз устанавливаем фоновое изображение на экран телефона.

Теперь все работает как надо - телефон снова стал достаточно скучным и превратился из пожирателя времени в толкового помощника по жизни.

 

Оставить комментарий

 
  2021-12-19

Бесконечное Лето

Есть такой жанр - визуальная новелла. Визуальная новелла это слияние компьютерной игры, комикса и новеллы. Этакий нелинейный комикс, где развитие сюжета зависит от выбора читателя. Прохождение-чтение сопровождается фоновой музыкой, что вызывает эффект погружения.

Из визуальных новелл мне в свое время очень зашла Бесконечно Лето - у ребенка в кружке ребята сильно фанатели от этой штуки, вот мне и стало любопытно, что это за штука такая, и, что интересно, штука действительно забавная, жаль в моем детстве таких не было...

Главный герой загадочным образом переносится из нашего времени в альтернативное советское прошлое, в пионер-лагерь "Совенок", где, в теле подростка, оказывается вовлеченным с странные приключения.

Интересно что у Бесконечного лета есть адаптация в виде Telegram Бота так что можно играть в эту штуку не устанавливая никаких программ на устройство, хотя без звукового сопровождения впечатление от игры сильно слабее. Впочем, музыкальное сопровождение, можно взять с их сайта в виде треков, кстати, треки отлично подходят в качестве фонового сопровождения пока что-нибудь кодишь...

 

Оставить комментарий

 
  2021-06-13

Запись звука через микрофонный вход телефона

Андроид много чего умеет в области распознавания речи. Вот только речь необходимо вводить непосредственно с микрофона устройства, распознавать речь входящего звонка или проигрываемого файла уже проблематично. Что если сделать так, чтобы звук воспроизводился на одном устройстве а принимался на другом? В этом случае, можно соединить два устройства проводами через 3.5 миллиметровый разъем. Например, таким способом можно распознавать голосовые заметки, сделанные на утренней пробежке или использовать подобный тандем для тестирования приложений, работающих с голосовыми функциями. В принципе, два телефона которые лежат рядом друг с другом вполне себе друг друга слышат, но хотелось бы чтобы устройства были соединены проводами, чтобы не нарушать тишины помещения.

На выходных спаял небольной концепт подобного устройства. Устройство представляет собой простейший резистивный делитель с резисторами 5К и 1К средняя точка которого присоединена к микрофонному входу через керамический конденсатор в 100 пикофарад. Схема соединения получилась такой:

Делитель спаял на куске макетной платы. Для соединения всех компонентов использовал несколько переходников с коннекторами типа тюльпан и джек. 

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

Звук можно записывать только в моно режиме, так что для студийной записи такое не подойдет, а вот для маленького проекта по распознаванию речи, автоматизации телефонных звонков или для автоматических тестов голосовых возможностей андроид приложений - вполне.

 

Оставить комментарий

 
  2021-05-03

Новая версия текстового редактора

Выпустил на выходных новую версию Простого Текстового Редактора. Не прошло и десяти лет как в нем, наконец появились функции отмены и повтора последней операции. Причем новая версия зарелизина в Google Play и F-Droid

На F-Droid версия уже принята но я до сих пор вижу старый релиз, они не быстро обнавляют приложения.

 

Оставить комментарий

 
  2021-03-20

Компилируем Android приложения в Docker

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

Посидев пару вечеров, собрал простенький образ, который будет делать за меня всю черновую работу. Теперь, чтобы собрать любое приложение для android, достаточно выполнить вот такую команду из корня проекта:

docker run --rm -v ${PWD}:/var/app maxistar/android:latest bash \
 -c "gradle build && gradle compileDebugSources"

Готовый apk файл будет сохранен в папку app/build/outputs/apk/debug/app-debug.apk - его можно сразу скопировать не телефон и установить его (не забудьте разрешить установку приложений из неизвестных источников). 

Как был сделан этот образ? За основу взял образ Debian 9.

Установил Java 8 (Java 11 у меня не завелась если знаете как подружить gradle и java 11 поделитесь секретом)

apt-get update
apt-get -y install git wget unzip default-jdk

Для сборки нам нужен gradle установим его

wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -P /tmp
unzip -d /opt/android /tmp/sdk-tools-linux-3859397.zip

Скачаем Android SDK:

wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -P /tmp
unzip -d /opt/gradle /tmp/gradle-6.8.3-bin.zip

Еще нужно установить переменные окружения.

ENV ANDROID_SDK_ROOT=/opt/android
ENV GRADLE_HOME=/opt/gradle/gradle-6.8.3
ENV PATH=${GRADLE_HOME}/bin:${ANDROID_SDK_ROOT}/tools/bin:${PATH}

Теперь нужно скачать инструменты для сборки android приложений.

sdkmanager --update
sdkmanager "build-tools;30.0.2" "platform-tools" "platforms;android-30"
sdkmanager --licenses

Готовый Dockerfile выглядит вот так:

FROM debian:9

MAINTAINER Max Starikov <maxim.starikov@gmail.com>

ENV ANDROID_SDK_ROOT=/opt/android
ENV GRADLE_HOME=/opt/gradle/gradle-6.8.3
ENV PATH=${GRADLE_HOME}/bin:${ANDROID_SDK_ROOT}/tools/bin:${PATH}

RUN apt-get update && apt-get -y install git wget unzip default-jdk

RUN wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -P /tmp && \
    unzip -d /opt/android /tmp/sdk-tools-linux-3859397.zip && \
    wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -P /tmp && \
    unzip -d /opt/gradle /tmp/gradle-6.8.3-bin.zip && \
    sdkmanager --update && \
    yes | sdkmanager --licenses  && \
    sdkmanager "build-tools;30.0.2" "platform-tools" "platforms;android-30" && \
    yes | sdkmanager --licenses && \
    mkdir /var/app

WORKDIR /var/app

Следует заметить, что образ довольно большой (примерно 850Mb) - и для его использования нужно быстрое интернет соединение, но зато, единожды скачав, скачивать повторно docker его больше не будет.

Образ доступен на docker hub. Исходник находится на github.

 

Оставить комментарий

 
  2021-02-27

Super Words Memorizer снова в Google Play!

Super Words Momorizer cнова доступен на Google Play!

Как то у меня снова появилось вдохновение развивать проект - спасибо Dualingo - они так испоганили свой продукт, что захотелось сделать функции которых у них нет и никогда не будет, а мне очень хотелось бы их иметь.

Хотя, конечно, моя программка - совсем не конкурент Dualingo, это скорее такой маленький тул, для пополнения словарного запаса. При помощи него я неплохо прокачал свой английский и итальянский языки. Сейчас изучаю немецкий.

Увы, все что хочется реализовать один я делать не успеваю, и наверно, никогда не успею. Если вдруг, среди читателей моего маленького дневничка есть желающие помочь мне с проектом, я был бы очень этому рад. У меня есть куча идей для новых словарей, новых диалоговых режимов, нового функционала.

Мне можно написать через контактную форму на этом сайте.  Буду рад любой помощи.

 

Оставить комментарий

 
  2021-02-21

Интервальное повторение

Реализовал в своем маленьком пет проекте superwords метод интервального повторения

Superwords это маленькое приложение под android, при помощи которого я изучаю иностранные языки. Что-то типа Anki но с возможностью учить синонимы и варианты переводов - когда я только начинал делать эту программу я был увлечен японским языком и мне нужно было запоминать не только смысл слова но и написание каной и канзи. 

Знание языков мне всегда очень помогало в путешествиях по Европе, в поиске работы и, сейчас, когда я живу в Германии, без них никуда. Хотя, признаюсь, иностранные языки мне всегда давались с большим трудом. Ну нет у меня к ним таланта!

Интервальное повторение - это повторение на основе кривой забывания Эббингауза. Кривая забывания или кривая Эббингауза была получена вследствие экспериментального изучения памяти немецким психологом Германом Эббингаузом в 1885 году.

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

В ходе опытов было установлено, что после первого безошибочного повторения серии таких слогов забывание идёт вначале очень быстро. Уже в течение первого часа забывается до 60 % всей полученной информации, через 10 часов после заучивания в памяти остаётся 35 % от изученного. Далее процесс забывания идёт медленно, и через 6 дней в памяти остаётся около 20 % от общего числа первоначально выученных слогов, столько же остаётся в памяти и через месяц.

Для лучшего запоминания информации психологи советуют делать несколько повторений, через некоторые интервалы, величина которых зависит от того, который раз происходит данное конкретное повторение.

В приложении это работает таким образом - при повторении каждого слова сохраняется количество успешных повторений а также дата последнего повторения, поэтому в следующий раз при выборе слова из списка слов предпочтение отдается тем словам которые уже пора повторять. Удивительно, насколько это повышает качество запоминания!

Первое повторение — через 30 минут, второе повторение — день после первого повторения, третье повторение — через неделю после второго, четвёртое повторение — через месяц после третьего, пятое повторение — через пол года после четвёртого повторения.

Штука оказалась абсолютно убойной, и почему я раньше это не реализовал... 

К сожалению, в GooglePlay приложение в настоящее время недоступно - сейчас новая версия ещё проходит ревью. Но можно установить apk вручную.

 

Оставить комментарий

 
  2020-12-25

Simple Text Editor на F-Droid

Simple Text Editor теперь доступен на F-Droid. Подумал почему бы не выложить его еще и на этот маркет - там много интересных приложений, причем все они исключительно Open Source - неиссякаемый источник вдохновения и примеров кода для Андроид Приложений.

 

Оставить комментарий

 
  2020-11-12

Коммитим в Git из Android

Задался вопросом - можно ли развернуть Git репозиторий на телефоне, редактировать файлы и коммитить изменения в проект? Оказалось, что можно, и оно отлично работает!

Установил Termux, Termux:Api, Termux:Widget. Важно чтобы все три приложения были установлены из одного магазина приложений - они есть в F-Droid и Android Play Market но последнее в Android Play стоит два доллара а в F-Droid - бесплатное.

Запускаем Termux и ставим необходимые пакеты, и разрешаем приложению доступ к файловой системой:


pkg install git openssh termux-api
termux-setup-storage

Cоздаем папку для проекта и инициализируем репозиторий:


mkdir /storage/emulated/0/Documents/work
cd /storage/emulated/0/Documents/work
git init
git remote add origin git@github.com:username/reponame.git
git config --global user.email "your@email.com"
git config --global user.name "Max"
nano readme.md
git add readme.md
git commit -am"first commit"
#cоздаем пару ключей для git репозитория:
ssh-keygen
cat /data/data/com.termux/files/home/.ssh/id_rsa.pub
#полученную строку копируем и вставляем в профайл гитхаба или другой системы которой вы пользуетесь.

Cоздаем папочку со скриптами:


mkdir -p $HOME/.shortcuts
mkdir -p /data/data/com.termux/files/home/.shortcuts/tasks
cd /data/data/com.termux/files/home/.shortcuts/
nano ./push.sh 
chmod +x push.sh

push.sh выглядит так:


#!/data/data/com.termux/files/usr/bin/bash
cd /storage/emulated/0/Documents/work
git add *
git commit -am"autocommit"
git push origin master
termux-toast "Changes successfully pushed" 

Аналогично создаем pull.sh:


#!/data/data/com.termux/files/usr/bin/bash
cd /storage/emulated/0/Documents/work
git pull origin master
termux-toast "Changes successfully pulled"

Осталось лишь добавить виджет на экран и вы можете делать pull и push с вашего телефона кликая на виджет!

Вуаля, теперь можно, например, редактировать заметки и сразу коммитить их в репозиторий, чтобы не потерять историю изменений!

 

Оставить комментарий