LINUX.ORG.RU
ФорумTalks

Дело было вечером

 ,


7

5

Для Android 2.2+ сделал вот такую вот шляпу: https://github.com/nekoexmachina/linuxConnect-simple/

Поставить можно, сбилдав apk через ant debug (можно и релиз, но это потребует доп. действий в виде добавить-ключик, подписать и т.д и т.п., т.ч пока оно до гуглплея не дойдет, смысла имхо нет), и залив apk на девайс с помощью adb install. Оно предельно тупое и сделано за последний час :) Просто шлет UDP-пакет на сконфигуренный адрес с JSONObject с инфой о входящем/исходящем звонке. Клиента-обработчика под десктоп не включено, но простейший клиент выглядит так:

#!/usr/bin/env python3
import socket;
UDP_IP="addr"
UDP_PORT=5559

sock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP,UDP_PORT))
while True:
    data, addr  = sock.recvfrom(1024);
    print("Recieved:", data," from: ",addr);

Из клиента соотв-но можно сделать notify-send, который при наличии любого notification-daemon (xfce4, gnome или kde) выведет стандартную нотификацию в нотификационную область, паузить любой плеер командой, звук понижать и т.д. и т.п., но это дело рук уто^Wпользователей пока что :)

Сделано за пару минут на коленке, т.ч. никаких продвинутых штук пока что нету, типа авторизации там и т.д. и т.п.. Планируется.

P.s. я знатный говнокодер с малым количеством опыта, пинайте, плиз если что-то не так, совсем не так или очень-очень не так.
P.s.s. Т.к. мне нужны только звонки, а товарищь Valkeru говорил, что он такое хочет, а андрюша у него 4.1 - сделано без поддержки NotificationListener'а, который возник в 4.3 и соотв-но без поддержки любых нотификаций, кроме звонковых.
Еще возможно сделать нотификации для SMS, но про это не уверен, надо ли.
P.s.s.s. cast fjfalcon

★★★★★

Последнее исправление: takino (всего исправлений: 2)

Ответ на: комментарий от Black_Roland

А шоп было.
Не знал о существовании альтернатив, окромя kdeconnect.
Две приведенные -
Первая - на XMPP, что печально.
Вторая - вполне норм.
(но все равно на зло врагам буду дальше костыли пилить, лол)

up:
вчитался в описание второго, оно делает тоже не то,оно передает все нотификации. notifyservicelistener, класс, позволяющий это сделать, возник только в api андроида версии 4.3, тогда как сабж - для любого андроида, начиная с 2.2, хотя и держит только звонки.

takino ★★★★★
() автор топика
Последнее исправление: takino (всего исправлений: 2)
Ответ на: комментарий от takino

Первая - на XMPP, что печально.

Ну и что же тут печального? :) Зато есть возможность управлять телефоном с компа (сбрасывать звонки, писать СМС, отключать Wi-Fi, включать GPS и телефон будет присылать свои координаты, а так же много чего еще).

вчитался в описание второго, оно делает тоже не то,оно передает все нотификации. notifyservicelistener, класс, позволяющий это сделать, возник только в api андроида версии 4.3

У меня Android 4.2.1 и LinConnect нормально работает. Может такое быть что Lenovo бэкпортируют функционал из новых версий?

Black_Roland ★★★★
()
Ответ на: комментарий от Black_Roland

Зато есть возможность управлять телефоном с компа (сбрасывать звонки, писать СМС, отключать Wi-Fi, включать GPS и телефон будет
присылать свои координаты, а так же много чего еще).


А мне только звонки нужны. Слишком много функционала - не особо. Вот захочу я перепилить что-нибудь в поведении этого XMPP-монстра, и що мне делать? :))

У меня Android 4.2.1 и LinConnect нормально работает. Может такое быть что Lenovo бэкпортируют функционал из новых версий?

Ой хезе хезе. Внимательно перечитал описалово - вроде автор говорит, что 4.0+.. Может быть, автор самолично какие-то костыли изобретал, или не знаю там..

takino ★★★★★
() автор топика
Последнее исправление: takino (всего исправлений: 1)
Ответ на: комментарий от takino

А мне только звонки нужны. Слишком много функционала - не особо. Вот захочу я перепилить что-нибудь в поведении этого XMPP-монстра, и що мне делать? :))

Брать исходники и перепиливать :) https://code.google.com/p/gtalksms/source/checkout

Black_Roland ★★★★
()

Просто шлет UDP-пакет на сконфигуренный адрес с JSONObject с инфой о входящем/исходящем звонке

почему не http?

crowbar
()
Ответ на: комментарий от fjfalcon

Только что проверила - linconnect работает на 4.1.2 (HTC), правда, чтобы заработал сервер, пришлось ещё поплясать с бубном по указаниям в багтрекере.

reserved
()
Последнее исправление: reserved (всего исправлений: 1)
Ответ на: комментарий от Black_Roland

И это все равно будет другое приложение. :)

takino ★★★★★
() автор топика
Ответ на: комментарий от crowbar

Ты имел в виду, почему не TCP?
Потому что почему бы и нет :) (Не нужна гарантированность доставки, показалось что UDP сделать проще, а с сетями я дел почти не имел)

takino ★★★★★
() автор топика

Собрал, вроде установил, но что-то в приложениях я его не вижу... ЧЯДНТ?
Ещё пытаюсь запустить скрипт на десктопе - вижу вот это

valkeru@valkeru-desktop:~/Рабочий стол$ ./test
Traceback (most recent call last):
  File "./test", line 7, in <module>
    sock.bind((UDP_IP,UDP_PORT))
socket.gaierror: [Errno -2] Name or service not known

Valkeru ★★★★
()
Последнее исправление: Valkeru (всего исправлений: 1)
Ответ на: комментарий от Valkeru

Само приложение зовется ConnectActivity на данный момент (ща поправлю, косяк:)) и имеет дефолтовую иконку.

takino ★★★★★
() автор топика
Ответ на: комментарий от Valkeru

Ну да, правильно. Ты UDP_IP на свой ip поправил? Там пример же, причем пример примитивный.

takino ★★★★★
() автор топика
Ответ на: комментарий от takino

Понял. Я в этих делах немножко ламер :(
Теперь работает.

Valkeru ★★★★
()

Еще возможно сделать нотификации для SMS, но про это не уверен, надо ли

Надо ;)

Valkeru ★★★★
()
Ответ на: комментарий от Pavval

потому что почему бы и нет.
Разные требования к девайсам (версия андроеда) и делают несколько разные вещи.

takino ★★★★★
() автор топика
Ответ на: комментарий от takino

Разные требования к девайсам (версия андроеда)

Разве KC завязан на какую-то? ЕМНИП у него просто функционал зависит от версии и всё.

делают несколько разные вещи.

Не совсем понял. Чем разные?

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Notification sync доступен с 4.3, а это то, что мне нужно.
kdeconnect кроме того, что отправляет нотификации, еще делает кучу всяких разных штук, на что тоже шлет нотификации. Выдирать это или писать обработчик под не-KDE мне менее интересно, чем навелосипедить самоделку (я честно открыл код kdeconnect'а под андроид и медитировал над ним пол-часа).

Не совсем понял. Чем разные?

kdeconnect педалит, этот нотификатор шлет данные о звонке, обработкой которых занимается уже клиент.
jff, короче.

takino ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.