Перейти к содержанию
Fire Monkey от А до Я
  • 1

Служба + перехват номера


x11

Вопрос

На основе нескольких тем форума сделал службу перехвата звонков и номера телефона.

http://fire-monkey.ru/topic/3878-статьякак-создать-простой-android-broadcast-receiver-how-to-implement-simplest-android-broadcast-receiver-in-delphi/

http://fire-monkey.ru/topic/2386-перехват-события-звонка/

http://fire-monkey.ru/topic/2972-использование-нативных-localbroadcastmanager-и-broadcastreceiver/

Покритикуйте пожалуйста. Уверен, что не всё правильно.

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

Проект (для Токио) приложил теме.

Заранее благодарен.

 

BR2.rar

Изменено пользователем x11
замена примера на более удачный вариант
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

А мне не нужны другие телефоны. Я хочу с текущего телефона самсунг перехватывать звонок и передавать себе текущий номер звонящего мне клиента  на сервер  и записывать в историю. Но не хочу чтобы телефон все время был на зарядке, это не правильно. Мне бы запустить ваш проект и уже буду тестить, если получится, то отпишусь. Помогите пожалуйста разобраться с проблемой: [Exec Error] The command ""C:\Program Files\Java\jdk1.8.0_60\bin\jar" cf ".\Android\Debug\CallerIdSrv.jar" -C "\\Mac\Home\Documents\1111\BR2\srv\JavaClasses\CallerIdSrv" ." exited with code 1.

Ссылка на комментарий
  • 0

Разобраться не помогу, но у меня был такой случай. Я в программировании на Delphi не шарю, так чуть чуть ковырял в техникуме и всё. Когда мне понадобился перехват номеров, я наткнулся на эту службу, чтобы открыть проект скачал Rad Studio 10.2 с rutracker-а, проект открылся и скомпилировался без каких либо проблем под телефон Redmi 3S и Redmi 4x. Это я к тому что можно попробовать Rad Studio 10.2, возможно в нём не будет ошибок при компиляции... 

Ссылка на комментарий
  • 0
40 минут назад, ТАГИР Тагирович сказал:

exited with code 1

а ты гуглил на тему ошибки?

https://www.google.com/search?client=firefox-b-d&q=jar++exited+with+code+1

http://fire-monkey.ru/topic/2975-seattle-android-ошибка-exited-with-code-1/

может у тебя проблема с настройками SDK или версия Явы не та что надо?

Ссылка на комментарий
  • 0

Все работает, спасибо за пример. А ни кто не знает как теперь сделать, чтобы стандртные интерфейсы не отображались, допустим звонилка или в моем случае окно громкости?

Ссылка на комментарий
  • 0
40 минут назад, OnePeople сказал:

Все работает, спасибо за пример.

Ты мой пример использовал из первого сообщения?

На какой версии Дельфи собран проект и на какой версии Андроида запустил? Меня ли что-то в манифесте?

Ссылка на комментарий
  • 0
В 30.01.2020 в 02:22, x11 сказал:

Ты мой пример использовал из первого сообщения?

На какой версии Дельфи собран проект и на какой версии Андроида запустил? Меня ли что-то в манифесте?

10.3.3 community

Андроид 8

Манифест свой, приложение без сервиса.

 

Ссылка на комментарий
  • 0
1 час назад, x11 сказал:

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

Всё не то что будет работать, всё работает!!! И мне не нужен сервис, пока)

Ссылка на комментарий
  • 0

Ок, замурчательно.

А что там такого в манифесте прописано? Может там указано, что твоё приложение - для Андроид 4?

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

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

Ссылка на комментарий
  • 0
В 29.01.2020 в 12:55, x11 сказал:

Нет. Проект старый, может работать для Андроид 4-5 и не будет работать для Андроида 6 или выше. В Андроид 6 или 7 Гугл добавила "динамические права", т.е. запрос выскакивает прямо посреди работы приложения. А старые версии FMX эти запросы обрабатывать не умеют. Я проект делал на Berlin`е.

Для справки. У меня на сяомишках с 6-м андроидом работает, и на Huawei Honor 8X с 9-м андроидом тоже работает, хо автор говорит что не будет работать на андроиде выше 5-го. Пользуюсь этой службой очень активно каждый день по работе. Правда приложение немного глючное. Может вылететь внезапно, могут начать задваиваться и затраиваться входящие звонки. Но это лечится полным перезапуском, и не так часто происходит чтобы напрягало, так что в принципе пользоваться службой можно, большое спасибо автору!

Ссылка на комментарий
  • 0
33 минуты назад, x11 сказал:

Ок, замурчательно.

А что там такого в манифесте прописано? Может там указано, что твоё приложение - для Андроид 4?

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

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

До маркета ещё далеко. 

Да ни какого, потом все перенесется в сервис.

А есть пример с окном SYSTEM ALERT???

private void showWindow(Context context, String phone) {
   windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
   LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

   WindowManager.LayoutParams params = new WindowManager.LayoutParams(
           WindowManager.LayoutParams.MATCH_PARENT,
           WindowManager.LayoutParams.WRAP_CONTENT,
           WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
           WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
           PixelFormat.TRANSLUCENT);
   params.gravity = Gravity.TOP;

   windowLayout = (ViewGroup) layoutInflater.inflate(R.layout.info, null);

   TextView textViewNumber=(TextView) windowLayout.findViewById(R.id.textViewNumber);
   Button buttonClose=(Button) windowLayout.findViewById(R.id.buttonClose);
   textViewNumber.setText(phone);
   buttonClose.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           closeWindow();
       }
   });

   windowManager.addView(windowLayout, params);
}

 

AndroidManifest.rar

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...