Rionn
-
Постов
29 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Rionn
-
-
Просто раньше отправлял через indy, когда был android 6, теперь стоит 7 и нету библиотек openssl.
-
Какие существуют способы отправки письма на почту без стороннего приложения (intent) ?
-
-
Спасибо, буду пробовать. А где можно узнать статический?
-
Результат такой - если телефон на одном и том же eifi, то все работает, если отключаю wifi и включаю моб. данные, то выдает ошибку (access volution...) IP использую типа 192.168.0.1
-
Я это понимаю, но я уже ни один раз делал все как на сайте, и на различных устройствах, и всегда получал один и тот же результат. Тоесть либо работу только по wifi либо ошибку, если использовать мобильные данные.
-
В этой ссылке показан пример работы в одной сети (написано курсивом). Не могу найти, чтобы PC работал по сети или по WiFi, а телефон по мобильным данным. Не подскажете?
-
Да, до обновления на android 7 отправлялись письма без почтового интерфейса, а можно тогда все-таки оставить indy компоненты, но тогда с открытием интерфейса почты?
-
Для отправки писем на почту.
-
6 часов назад, krapotkin сказал:
Кто? HTTPClient сам умеет ходить по https
Библиотеки для android 7.
-
18 часов назад, krapotkin сказал:
нигде
пользуйтесь THttpClient
А как скоро появятся?
-
Где можно скачать OpenSSL для Android 7.0?
-
Интересует такой вопрос: я работаю на компьютере и подключил к этому компьютеру android устройство, потом, через программу удаленного доступа я заходу на другой компьютер, где стоит delphi. Вопрос таков, что можно использовать для того, чтобы удаленный компьютер также опознал usb устройство, которое подключено к "реальному" пк, чтобы при приложение установилось на телефон?
-
В 03.12.2016 в 12:50, Andrey Efimov сказал:
Со свежей головой. В дополнение к предыдущим замечаниям. Ну понеслась...
Что это такое?
BroadcastReceiver.Add('android.intent.action.READ_PHONE_STATE');
Зачем это?
var telephonyService: JObject; telephonyManager: JTelephonyManager; ... begin outputResult:= #13#10; telephonyService := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); telephonyManager := TJTelephonyManager.Wrap((telephonyService as ILocalObject).GetObjectID);
Где определение статуса? (EXTRA_STATE_RINGING)
В общем, я внёс некоторые правки в ваш код и всё работает, но далее только в раздел Ищу подрядчика или ищите того, кто вам бесплатно реализует вашу задачу (сомневаюсь, что такие найдутся).
Спасибо большое за ответ. А ещё такой вопрос, я все-таки написал условие для определения номера, но если условие не выполняется, то нужно, чтобы программа ничего не делала. Тоесть в else мне нужно что-то написать, потому что при отсутствии else программа просто ввлетает и не работает.
-
8 часов назад, Andrey Efimov сказал:
Исходники - это файлы из корневой папки проекта, без подпапок, в которых собирается проект. Т.е. папка Android не нужна.
Далее, по коду.
Где у вас это?:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Assigned(BroadcastReceiver) then BroadcastReceiver.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin CreateBroadcastReceiver; end;
Далее, на вибрацию нужно выставить пермишен "Vibrate" (на днях выложу на свой гитхаб, класс, упрощающий работу с вибрацией)
Менять местами код в регистрации ресейвера, смысла нет, делайте так как и было.
incomingCallNumber - вообще не понял, что это, где код, в котором вы заносите в эту переменную номер?
По поводу глобальных переменных -это уже придирка, но лучше пишите их в классе, как поля.
Вот в этом коде:
if incomingCallNumber = 'номер телефона' then VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE); Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID); Vibrator.vibrate(10);
словите ошибку, возможно AV, если звонок будет просто с другого номера.
Пока вроде всё, что бросилось в глаза, но уже ночь и мог что-то не углядеть. Правьте и пробуйте.
Ваш архив перезалил, номер потёр.
Итог: Плохо копируете код.
Мой совет: Если не знаете, что делаете или просто не охото изучить представленные примеры, то лучше обратитесь в раздел Ищу подрядчика. Или можете попробовать помучить ещё форумчан, хотя вам дали примеры с избытком...
Все переделал по вашему кода, однако ничего не работает.
-
-
ни так, ни так не идёт
-
Всё понял, добавил:
procedure BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent);
и
procedure TForm1.BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); begin CheckPhoneCallState(csContext, csIntent); end;
И после этого программа может заработать?
-
У меня описана процедура
CheckPhoneCallState
Но какой метод ещё нужен и куда его?
-
Строчка закомментирована, так как она подчеркнута красным.
-
1 час назад, Rusland сказал:
Может вибрация слишком короткая?
Vibrator.vibrate(10);
Поставил 10000. Ничего не поменялось
-
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, CSBroadcastReceiver,Androidapi.Jni, AndroidApi.JNI.GraphicsContentViewText, Androidapi.Jni.JavaTypes, Androidapi.JNI.Os, Androidapi.JNIBridge, Androidapi.JNI.Telephony, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls; type TForm1 = class(TForm) private { Private declarations } procedure CreateBroadcastReceiver; procedure CheckPhoneCallState(Context: JContext; Intent: JIntent); public { Public declarations } end; var Form1: TForm1; BroadcastReceiver: TCSBroadcastReceiver; implementation uses Androidapi.Jni.App, Androidapi.Helpers, Androidapi.Log, FMX.Helpers.Android; {$R *.fmx} procedure TForm1.CreateBroadcastReceiver; begin if not Assigned(BroadcastReceiver) then begin BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); //BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; BroadcastReceiver.RegisterReceive; BroadcastReceiver.Add('android.intent.action.PHONE_STATE'); BroadcastReceiver.Add('android.intent.action.READ_PHONE_STATE'); end; end; procedure TForm1.CheckPhoneCallState(Context: JContext; Intent: JIntent); var telephonyService: JObject; telephonyManager: JTelephonyManager; state: JString; incomingCallNumber: string; outputResult: string; VibratorObj: JObject; Vibrator: JVibrator; begin outputResult:= #13#10; telephonyService := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); telephonyManager := TJTelephonyManager.Wrap((telephonyService as ILocalObject).GetObjectID); if JStringToString(Intent.getAction).Equals('android.intent.action.READ_PHONE_STATE') then begin if incomingCallNumber = 'номер телефона' then VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE); Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID); Vibrator.vibrate(10); end; end; end.
Суть программы такого, что когда звонит определенный номер на телефон, то включается вибрация. Но что-то не включается.. Кто может что подсказать?
-
1 час назад, Rusland сказал:
Как я помню BroadcastReceiver сам активирует приложение, даже если оно закрыто
Как попробую, то сообщу о результате
-
В 27.11.2016 в 11:32, Rusland сказал:
Из этого я кое-что для себя взял, но при постройке всего этого возник вопрос с сервером, вообще как к нему обращаться с этим, вот вы, что скидывали ссылку, через fmx просто делали? Просто я не совсем тогда догоняю, как оно будет работать чисто через fmx, если у меня это приложение не будет постоянно в памяти сидеть, а человек позвонит в любую минуту. Просвятите..
DataSnap android client
в DataSnap
Опубликовано
Адрес указанный на картинке это не мой, я просто скопировал картинку.