×

Ищу Android программиста, проверить идею

Нужен андроид-программист, способный решить нетривиальную задачу.

Идея такая:
Маша звонит Коле. Андроид Коли отправляет запрос через GPRS на наш сервер (в запросе — только номер телефона Маши). Нетривиальность в том, что запрос надо отправить ДО того, как телефон начал «звонить». Потому что когда пойдут гудки, GPRS отрубится.

Нужно сделать технологический прототип без наворотов, просто проверить — работает/не работает.

Кто готов взяться, пишите здесь или на [email protected]

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Ну Android-программист для этого не нужен. Если GPRS отвалится то он отвалится до того как будет передана информация о номере звонящего абонента. В GSM модулях/модемах GPRS отваливается секунды за 2-3 до того как модуль выдаст первый «RING».

Скажите, пож а зачем оно вообще надо?

Коля увидит номер Маши при звонке. Зачем ему этот номер за пару секунд до этого?

Это разве, что может помочь против антиопределителя номера.

Как оно поможет против антиопределителя , откуда приложение тогда возьмет номер?

Не знаю.

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

А вообще с таким не работал, смотреть надо. Навскидку, без гугла, могу сказать, что отловить начало приема сигнала можно. А что дальше делать не знаю — все, что на ум приходит — тупо как либо попридержать оповещение юзера, что кто то звонит, что вроде бы бессмысленно.

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

То есть Коля не знает, что это Маша звонит, номер ему неизвестен, но просто кто-то кто знает телефон Маши и слил о ней инфу на сервис, и теперь если Маша звонит Коле, то Коля уже знает — кто это.

Иначе, действительно непонятно, зачем это все.

Ааа

Так да, действительно понятно зачем, спс.

Если давать инфу перед звонком, то можно дать только ну очень кратенькую информацию о звонящем — что то типа «Он один из нас» и все.

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

при приеме звонка достаточно дать «имя+фамилия». это и есть АОН

Особенно будет забавно, если у одного юзера контакт будет называться малыш, а в второго — кобелина. Абонент позвонил третьему юзеру, как его представить?

у меня и сейчас друзья в гугле называются одним именем, в фейсбуке — другим, в записной книжке — третьим :) это вопрос склейки. можно вручну, можно автоматом, короче говоря — решаемо

Да, все верно. Задумка именно такая.

Не думали над локальной базой?

По инету обновлять её время от времени. А во время звонка дергать.

Или тупой вопрос?

в фейсбуке подсказали вариант с переадресацией, мне кажется тут есть над чем подумать.
А что если направить звонок от Маши форвардом на наш служебный номер, и, как только мы увидели номер Маши, «сбрасываем» переадресацию?

Как думаете, получится?

В sdk нет методов переадресации, это на стороне оператора. Есть приложения которые отправляют USSD запросы для смены этих настроек (если оператор позволяет).

Я не знаю, как быстро доставляются Google Cloud Messaging (GCM), но можно попробовать их — звонки изначально идут на ваш служебный номер, который определяет звонящего, отсылает сообщениение через GCM телефону, и потом форвардит звонок на телефонный номер.

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

Данил, ты бы лучше рассказал в чем идея. Что вы пытаетесь сделать?

Скорее всего есть нормальный способ, а не «ставить звонок на паузу».

Макс, да я уже объяснил в комментах. Это определитель номера.

Мне звонит кто-то, и мой Андроид должен отдать запрос на сервер с номером входящего. Обратно сервер пришлет смс, поэтому надо только отдать запрос, обработку не ждем. Я бы и рад найти «нормальный способ» но пока либо WiFi либо 3G должен быть включен, а это значит что приложение в 90% случаев работать не будет. А вот Gprs — есть у всех. Если есть мысли, как это можно решить, подскажи :)

ну и определяйте себе на здоровье после звонка, СМС может вообще через сутки прийти

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

знать может и будет, а запись в адресбук прийдется вносить вручную. А вы ему можете смской после звонка прислать vcard c именем, телефоном, емейлом, аккаунтами в соц. сетях и останется только импортнуть ее. И сервис все равно будет полезным.

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

play.google.com/...e=search_result

короче говоря, таким аппом пользователя не удивить. нужен прорыв.

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

ну, у нас есть свои секреты :) могу лишь сказать, что к вопросам IP и Privacy мы относимся очень серьезно.

Это может быть, например, телефон из базы клиентов (CRM). Такое обычно хотят для call-центров.

краткое содержание.
пока проблему при данных условиях не решили.

похоже, «поставить на паузу» voice call нельзя, чтобы отдать gprs-запрос.

а вот мысль только что пришла — что происходит когда идет второй voice-call?

первый ставится на паузу? значит — все-таки можно «на паузу» ставить?

А почему так важно отправить данные перед звонком, а не по завершении?

это определитель номера. после завершения уже неактуально.

Посылать запрос по GPRS и что бы он успел обработаться до того как вызывающий закончит вызов? Серьезно? :)

Неверно. Никто не говорил о получении данных с сервера. Речь только об отправке короткого запроса (телефонный номер, 10-12 цифр) с андроида на сервер.

А как вы планируете возвращать данные с сервера в мобильное приложение? И ещё до завершения вызова?

что работает во время voice call? :)

Если мне не изменяет память — wifi и sms.(когда-то баловался с таким) По поводу три-жо не скажу, не тестил.

В любом случае — отправлять по sms определённый номер не вариант(задержки при передачи сообщения, поддержка разных гейтов, которые могут на разные операторы слать сообщения и тд).

А вообще — вопрос интересный :)

да, прием на телефон от сервера — sms :) оно работает во время voice call

wifi и 3г отбрасываем, бо они есть «далеко не у всех и далеко не всегда»

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

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

Одновременность работы интернета и разговоров зависит еще и от оператора

В момент приема, перехватить сигнал отключения gprs можно каким-либо образом? Сказать ему «подожди чуть-чуть, не отключайся полсекунды»? :)

А что говорит GSM стандарт по этому поводу ?

Насколько я знаю — нет. Нельзя ничего задержать

а когда приходит второй voice-call, то все-таки можно первый «на паузу» поставить? эту функцию как-то можно использовать?

Но сигнал оператора-то уже пришел. Если интернет+радио не могут работать вместе, то интернета уже не будет.

Но можно отослать данные после окончания разговора, когда появится gprs

после окончания разговора уже неактуально, это же определитель номера....

Потому что когда пойдут гудки, GPRS отрубится.

не факт, зависит от класа gprs и качества связи. если тел. класса А, то данные и голос в принципе могут передаватся одновременно( на 3Г, то тоже). А если в в нашем гондурасе за городом, то тут уже никакой класс не спасет, и передачи данных при звонке не будет.

Нужно сделать технологический прототип без наворотов, просто проверить — работает/не работает.

Без прототипа могу сказать — иногда и на некоторых телефонох работает. А если вы в цивилизованой стране с хорошим 3Г то практически всегда работает. Фактически даже если у вас будет прототип, то ответ будет — работает в зависимости от девайса и условий в которых он находится, и 100% гарантии нет, еще может быть отключена передача даных через мобильную сеть в настройках. Для real-word апп кешируейте нужные вам данные и предпологайте худший вариант.

не факт, зависит от класа gprs и качества связи. если тел. класса А, то данные и голос в принципе могут передаватся одновременно( на 3Г, то тоже). А если в в нашем гондурасе за городом, то тут уже никакой класс не спасет, и передачи данных при звонке не будет.

Идея в том, чтобы приложением могли пользоваться максимальное количество пользователей. Например, WiFi включен редко, поэтому он не подходит. 3Г бывает чаще но тоже не у всех. Популярность классов А, В, С я не знаю, у вас есть данные?

Как охватить пусть не 100, но хотя бы 90% обладателей андроида?

Без прототипа могу сказать — иногда и на некоторых телефонох работает. А если вы в цивилизованой стране с хорошим 3Г то практически всегда работает. Фактически даже если у вас будет прототип, то ответ будет — работает в зависимости от девайса и условий в которых он находится, и 100% гарантии нет, еще может быть отключена передача даных через мобильную сеть в настройках. Для real-word апп кешируейте нужные вам данные и предпологайте худший вариант.

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

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

думаю что большинство относится к класу Б и имееют проблемы с 2Г. разные извращения с телефонией вам не помогут, если рынок — СНГ (а европе/штатах с 3Г лучше) нужно придумать как сохранять данные в офлайне и не расчитывать что сервер доступен во время звонка

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

кешировать не получится — мы же отдаем, а не принимаем данные.

так что получается, можно реализовать только через 3Г?

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

Нужно ловить ACTION_PHONE_STATE_CHANGED, заблокировать входящий звонок тоже можно, просто апи для этого не документировано, находил когда-то в aidl фунцкции для этого, еще можно их получить через рефлекшин

Вот это уже интересно!
Сможешь такое сделать?

что-то у меня с комментами тут не ладится.

В общем, у тебя получится это сделать?

Речь не о блокировке звонка. Надо его «поставить на паузу». Пауза очень короткая — на время отправки данных по гпрсу. Доля секунды, наверное.

не выйдет, без прототипа понятно, что нужно не «ставить на паузу», а «ложить трубку»

есть сомнения что это технически реализуемо без жести с самосборным андроидом и кернел хакерством

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

С текущей тендецией паранойи в мире, добровольно, а то и за свой счёт, разрешать непонятной организации трекерить входящие звонки — это нужно очень сильно хотеть определитель звонящего ...

Сомневаюсь что это возможно — там есть только состояния idle, ringing и off-hook. И если пришел входной звонок, то это уже ringing.

когда приходит второй voice-call, первый ставится на паузу? значит — все-таки возможно «поставить на паузу»?

а у тебя как обычно — раздутые сроки и нихрена не сделано?

давай по делу, а?

Нет, небесплатно. По делу я задал вопрос. Если есть что ответить по делу — давай обсуждать.

Мне кажется, у вашего инновационного стартапа большое будущее

Спасибо за поддержку, я тоже очень в это верю :)

Підписатись на коментарі