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

Martifan

Пользователи
  • Постов

    396
  • Зарегистрирован

  • Посещение

  • Победитель дней

    16

Весь контент Martifan

  1. Martifan

    iOS Push Notification

    Я разобрался как получить FDeviceToken но когда пытаюсь отправить к себе уведомление получаю ошибку { "multicast_id": 6043277869161850913, "success": 0, "failure": 1, "canonical_ids": 0, "results": [ { "error": "InvalidParameters: Failed to decode APNS token: s_{length=32,bytes=0x9658a3f4b737f876f823a1705c1a39a6...dc13415e0a1af7e3}" } ] } может кто то знает в чем проблема? и как исправить? заранее спасибо
  2. Martifan

    iOS Push Notification

    здравствуйте, я пытаюсь сделать push уведомление на iOS делаю следующим образом: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.PushNotification, FMX.Controls.Presentation, FMX.StdCtrls, FMX.PushNotification.iOS, FMX.ScrollBox, FMX.Memo; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } FDeviceID: string; FDeviceToken: string; FPushService: TPushService; FPushServiceConnection: TPushServiceConnection; procedure OnReceiveNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification); procedure OnServiceConnectionChange(Sender: TObject; AChange: TPushService.TChanges); public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin FPushService := Nil; FPushServiceConnection := Nil; FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS); if Assigned(FPushService) then begin FPushServiceConnection := TPushServiceConnection.Create(FPushService); FPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; FPushServiceConnection.OnChange := OnServiceConnectionChange; FPushServiceConnection.Active := True; end else Begin ShowMessage('False'); End; end; procedure TForm1.OnReceiveNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification); begin // ShowMessage('OnReceiveNotificationEvent'); end; procedure TForm1.OnServiceConnectionChange(Sender: TObject; AChange: TPushService.TChanges); begin Memo1.Lines.Clear; if (TPushService.TChange.DeviceToken in AChange) and Assigned(FPushServiceConnection) then begin FDeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; // save token and ID to remote db here Memo1.Lines.Add('DeviceID: '+FDeviceID); Memo1.Lines.Add('DeviceToken: '+FDeviceToken); end; end; end. все проходит нормально но получаю значение FDeviceID а значение FDeviceToken пустой все сертификаты установлены правильно и соответственно указана все правильно как я говорил перемен FDeviceID получает значение а FDeviceToken возвращается пустым на форумах тоже видел такую проблему но может кто то решал эту проблему? поделитесь пожалуйста заранее спасибо
  3. Martifan

    Return background to foreground

    Здравствуйте. кто знает можно ли развернуть аппликацию обратно если он свернуто и работает фоновом режиме в iOS
  4. здравствуйте, скажите пожалуйста, когда я собираюсь загрузить библиотеку мне выдаёт ошибку: Unknown directive: dependency в чем проблема? спасибо
  5. Martifan

    Bass iOS

    Здравствуйте, столкнулся с такой проблемой. Пишу небольшой проигрыватель на android и ios, на дроиде работает все нормально, а вот с яблоком проблема: не загружает библиотеку libbass.aДобавил ее в Deployment, сохраняется по пути StartUp/Library/ . Файл записывается на устройство, но библиотека все равно не грузится. Код загрузки библиотеки: const bassdll = 'libbass.a'; function BASS_FOLDER: String; begin {$IFDEF MSWINDOWS} Result := ''; {$ELSE} Result := IncludeTrailingPathDelimiter(system.IOUtils.TPath.GetLibraryPath); {$ENDIF} end; procedure LoadBassDLL; var DocDir: string; begin docDir:=BASS_FOLDER + bassdll; if fileExists(docDir) then begin FBassDLL := LoadLibrary(PChar(docDir)); if FBassDLL = 0 then Exit; end; end; Файл существует, но LoadLibrary возвращает значение 0. Уже всю голову сломал. В чем причина?
  6. Спасибо, а если каждый 2 минуты аппликация будет вызывать какой нибудь метод из моего веб сервиса?
  7. Martifan

    TThread В фоновом режиме

    Доброго времени суток. Подскажите пожалуйста, как заставить работать TThread в приложении, если приложение свернуто, т.е находится в фоновом режиме. Я делаю так: var I: Integer; begin I := 0; TThread.CreateAnonymousThread(procedure () var Return: String; begin repeat Label1.Text := I.ToString; I := I + 1; Sleep(1000); // Application.ProcessMessages; until I > 10; TThread.Synchronize (TThread.CurrentThread, procedure () begin end); end).Start; end; Когда активно приложение, все работает хорошо, после того как сворачиваю, т.е. нажимаю кнопку Home, аппликация сворачивается и процесс останавливается. Когда обратно разворачиваю, процесс продолжается. Как заставить работать приложение в фоновом режиме? Заранее спасибо.
  8. Доброго времени сутки. На Samsung Galaxy S8 Edge проект когда открываю выдаёт вот так: кто в курсе почему так происходит? вроде красный панель доле перекрывать NavigationBar? заранее спасибо
  9. Martifan

    Notification

    Доброго времени сутки. Пытаюсь получить уведомлены делаю все как в примерах и все работает хорошо уведомления приходят но есть одно проблема: если у меня экран телефона выключен то когда приходит уведомление только звучит а экран не загорается хотя я когда создаю канал указываю: Channel.Importance := TImportance.High; Channel.LockscreenVisibility := TLockscreenVisibility.&Public; но все равно экран не включается кто в курсе как можно сделать так чтобы экран включился? ну как это делает вайбер заранее всем спасибо
  10. это я видел но как реализовать FMX не могу понять
  11. Martifan

    Ping на Android или на iOS

    Доброго времени сутки подскажите пожалуйста как реализовать пинг на Android или iOS? то есть чтобы из моего приложении смог пинговать какой нибудь ип адрес заранее спасибо
  12. Martifan

    Распознавание речи

    Всем доброго времени сутки решил в приложение реализовать распознавание речи благодаря к примеру Ярослава все работает так как надо: unit main; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.ScrollBox, FMX.Memo; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} uses Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Speech, Androidapi.Helpers, FMX.Helpers.Android; procedure OpenSpeechRecognizer; var Intent: JIntent; begin Intent := TJIntent.JavaClass.init(TJRecognizerIntent.JavaClass.ACTION_RECOGNIZE_SPEECH); Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_PROMPT, StringToJString('Говорите')); Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE_MODEL, TJRecognizerIntent.JavaClass.LANGUAGE_MODEL_WEB_SEARCH); Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_MAX_RESULTS, 1); Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE, StringToJString('ru-RU')); SharedActivity.startActivityForResult(Intent, 1); end; procedure TForm1.Button1Click(Sender: TObject); begin OpenSpeechRecognizer; end; end. Androidapi.JNI.Speech.pas {********************************************************************* * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Autor: Brovin Y.D. * E-mail: y.brovin@gmail.com * ********************************************************************} unit Androidapi.JNI.Speech; interface uses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes; type JRecognizerIntentClass = interface(JObjectClass) ['{8AB8D43F-178D-4C79-9FC9-6DDA3D52CEBF}'] {Property Methods} function _GetACTION_RECOGNIZE_SPEECH: JString; function _GetEXTRA_PROMPT: JString; function _GetEXTRA_LANGUAGE_MODEL: JString; function _GetEXTRA_MAX_RESULTS: JString; function _GetEXTRA_LANGUAGE: JString; function _GetLANGUAGE_MODEL_WEB_SEARCH: JString; {Properties} property ACTION_RECOGNIZE_SPEECH: JString read _GetACTION_RECOGNIZE_SPEECH; property EXTRA_PROMPT: JString read _GetEXTRA_PROMPT; property EXTRA_LANGUAGE_MODEL: JString read _GetEXTRA_LANGUAGE_MODEL; property EXTRA_MAX_RESULTS: JString read _GetEXTRA_MAX_RESULTS; property EXTRA_LANGUAGE: JString read _GetEXTRA_LANGUAGE; property LANGUAGE_MODEL_WEB_SEARCH: JString read _GetLANGUAGE_MODEL_WEB_SEARCH; end; [JavaSignature('android/speech/RecognizerIntent')] JRecognizerIntent = interface(JObject) ['{5AE872F8-D057-4966-97B9-F8DD239C3656}'] end; TJRecognizerIntent = class(TJavaGenericImport<JRecognizerIntentClass, JRecognizerIntent>) end; implementation initialization TRegTypes.RegisterType('Androidapi.JNI.GraphicsContentViewText.JDataSetObserver', TypeInfo(Androidapi.JNI.Speech.JRecognizerIntent)); end. вот при нажатии кнопки появляется окно который слушает ваш речь и распознаёт: вроде все работает но есть маленькая проблема это форма очень быстро перестают слушать то есть приходит пассивном режиме: то есть если в время разговора остановишься несколько секунд (2-3) то он пассивным становится но если использовать распознавание речи клавиатуры: то появляется форма на клавиатуре и очень долго держит паузу: а теперь вопрос: 1) как мне заставить так же долго держать паузу на первом варианте 2) какая отличия между этими 2 формами? 3) если можно первый вариант сделать на iOS? всем за ранее спасибо
  13. можете дать премию ссылку?
  14. это маленькая приложения который отправляет запросы от клиента серверу о том что клиентский телефон включен и сколько процент батареи, ничего особенного просто удивился такое странное поведения клиента и подумал может кто то столкнулся таким же проблемой То есть команда: IOHandler.WriteLn(ObjectToJson(ASentObject), IndyTextEncoding_UTF8); работал фоновом режиме (когда экран отключен)
  15. а документацию как это реализовать не знайте где можно прочитать?
  16. Martifan

    TIDTCPClient, TIDTCPServer

    Доброго времени сутки сделал стандартный TCP клиент сервер для мобильного устройства то есть сервер запущен на компьютере а клиент мобильнике и клиент через определенное время отправляет одну команду (каждый 30 секунд), все работает идеально, до тех пор пока не погаснет экран на мобильнике после этого перестает отправлять команды и через 5-7 минут вообще отключается клиент от сервера подскажите пожалуйста что можно сделать чтобы он все равно отправлял команды когда экран отключен и не отключался от сервера? заранее всем спасибо
  17. Спасибо большое добрый человек действительно работает
  18. на кнопке параметре стоит CanFocus = False Project.rar
  19. в контроле то есть когда удаляю 123 с помощью кнопки, контролер очищается, но когда хочу написать 456 автоматом впереди добавляется 123 и получается 123456
  20. Здравствуйте У меня есть один TMemo в форме. Некоторый текст написан пользователем в нем. Есть кнопка стереть. Когда эта кнопка нажата, введенные данные обрабатываются и текст очищается с использованием следующего кода: EditBox.Lines.Clear; EditBox.Text: = EmptyStr; Когда приложение работает на устройстве, оно заметно удаляет текст после нажатия этой кнопки стереть. Однако, когда вы начинаете печатать снова, вы печатаете поверх старого текста. Например: 1- Исходный текст набран "123". 2- Нажата кнопка стереть. 3- Наблюдается, что редактирование содержимого визуально очищается. Текст не отображается. 4- Если вы наберете «456» в этом пустом редактировании, и после завершения ввода вы получите «123456» в самом редактировании. Точно так же, когда есть проблема с обработкой, приложение выбирает введенный текст. Если вы начнете печатать, новый текст добавляется, а не заменяется. как можно очистить память клавиатуры после удаление текста? заранее всем спасибо!
  21. Всем доброго времени сутки Подскажите пожалуйста как поделиться несколько фотографиями, как поделиться 1 фотографией понятно но как сделать несколько отправок за 1 раз? то есть я выделил 3 фотки и хочу поделиться вайбере или вацапе
  22. Пожалуйста если не сложно напишите пример как? спасибо
×
×
  • Создать...