Перейти к содержанию
  • Язык

Поиск смартфона в локальной сети

(0 отзывов)

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

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

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

Но яндекс станция есть не у всех. А часы для поиска требуют постоянного bluetooth-соединения, что лично мне как раз и мешает искать смартфон по-человечески. Потому я придумала штуку. Можно запустить питон-скрипт на телефоне, сделав его сервером и, окончательно впав в отчаяние, прозвонить его с компа. 

Вот, собсвтенно, код: 

import os
from flask import Flask

app = Flask(__name__)

# Функция для воспроизведения звука через VLC
def play_sound_with_vlc():
    # Замените на путь к вашему звуковому файлу
    os.system('vlc --intf dummy --play-and-exit ringtone.mp3')

@app.route('/ring')
def ring():
    # Воспроизведение звука через VLC
    play_sound_with_vlc()
    return "Ringing!"

@app.route('/stop')
def stop():
    # Остановка VLC (если это необходимо)
    os.system('pkill vlc')
    return "Stopped!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=2721)

Теперь подробнее: 

При переходе по адресу http://<IP-устройства>:2721/ring: Termux начнёт проигрывать ringtone.mp3.

Вернётся ответ: "Ringing!".

При переходе по http://<IP-устройства>:2721/stop: Termux остановит воспроизведение.

Вернётся ответ: "Stopped!"

Звонок пройдет даже если телефон на беззвучном.

 

Важные условия запуска:

1. Работает только на Android с Termux. termux-media-player – часть Termux API, поэтому код не сработает на ПК или iOS.

2. Termux должен иметь доступ к мультимедиа. Разрешение даётся командой 

termux-setup-storage

3. ringtone.mp3 должен лежать в той же папке, что и скрипт

4. Не добавляла проверку ошибок. Если плеер или файл недоступен – сервер "упадёт" (т.е. у вас должен быть установлен vlc, а звук лежать в той же папке, что и скрипт).

Как выглядит запуск в браузере:

image.png

 

Возможные улучшения

Поскольку вся работа реализуется через http GET-запрос, его можно воткнуть буквально куда угодно. 

Я написала небольшое apk-приложени с одной кнопкой, что б останавливать музыку, когда телефон найден (в кнопку запихнула  http://<IP-устройства>:2721/stop)

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

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

В общем, сделать можно что угодно. Если б еще не было так лениво...

 

1 высказывание

Рекомендуемые комментарии

Опубликовано

  • Граждане

P.S. еще в качестве улучшения можно добавить автозапуск скрипта при включении телефона. 

Посетитель
Добавить высказывание...

Важная сводка

Мы разместили cookie-файлы на твоё устройство, чтобы помочь сделать этот форум лучше. Ты можешь корректировать своё управление cookie-файлами, или же продолжить без каких-либо корректировок.

Иконка перчаток с несколькими звуками
Иконка перчаток

Досье

Навигация

Розыск

Розыск

Настройка push-извещений браузера

Chrome (Android)
  1. Нажми на значок замка рядом с адресной строкой.
  2. Нажми Разрешения → Извещения.
  3. Корректируй свои предпочтения.
Chrome (Desktop)
  1. Нажми на значок замка в адресной строке.
  2. Выбери Управление сайта.
  3. Разыщи Изввещения и корректируй свои предпочтения.