-
Постов
396 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Весь контент Martifan
-
Я разобрался как получить 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}" } ] } может кто то знает в чем проблема? и как исправить? заранее спасибо
-
здравствуйте, я пытаюсь сделать 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 возвращается пустым на форумах тоже видел такую проблему но может кто то решал эту проблему? поделитесь пожалуйста заранее спасибо
-
Здравствуйте. кто знает можно ли развернуть аппликацию обратно если он свернуто и работает фоновом режиме в 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. Уже всю голову сломал. В чем причина?
-
Спасибо, а если каждый 2 минуты аппликация будет вызывать какой нибудь метод из моего веб сервиса?
-
Доброго времени суток. Подскажите пожалуйста, как заставить работать 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, аппликация сворачивается и процесс останавливается. Когда обратно разворачиваю, процесс продолжается. Как заставить работать приложение в фоновом режиме? Заранее спасибо.
-
Доброго времени сутки. На Samsung Galaxy S8 Edge проект когда открываю выдаёт вот так: кто в курсе почему так происходит? вроде красный панель доле перекрывать NavigationBar? заранее спасибо
-
Доброго времени сутки. Пытаюсь получить уведомлены делаю все как в примерах и все работает хорошо уведомления приходят но есть одно проблема: если у меня экран телефона выключен то когда приходит уведомление только звучит а экран не загорается хотя я когда создаю канал указываю: Channel.Importance := TImportance.High; Channel.LockscreenVisibility := TLockscreenVisibility.&Public; но все равно экран не включается кто в курсе как можно сделать так чтобы экран включился? ну как это делает вайбер заранее всем спасибо
-
Доброго времени сутки подскажите пожалуйста как реализовать пинг на Android или iOS? то есть чтобы из моего приложении смог пинговать какой нибудь ип адрес заранее спасибо
-
Всем доброго времени сутки решил в приложение реализовать распознавание речи благодаря к примеру Ярослава все работает так как надо: 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? всем за ранее спасибо
-
можете дать премию ссылку?
-
это маленькая приложения который отправляет запросы от клиента серверу о том что клиентский телефон включен и сколько процент батареи, ничего особенного просто удивился такое странное поведения клиента и подумал может кто то столкнулся таким же проблемой То есть команда: IOHandler.WriteLn(ObjectToJson(ASentObject), IndyTextEncoding_UTF8); работал фоновом режиме (когда экран отключен)
-
а документацию как это реализовать не знайте где можно прочитать?
-
Доброго времени сутки сделал стандартный TCP клиент сервер для мобильного устройства то есть сервер запущен на компьютере а клиент мобильнике и клиент через определенное время отправляет одну команду (каждый 30 секунд), все работает идеально, до тех пор пока не погаснет экран на мобильнике после этого перестает отправлять команды и через 5-7 минут вообще отключается клиент от сервера подскажите пожалуйста что можно сделать чтобы он все равно отправлял команды когда экран отключен и не отключался от сервера? заранее всем спасибо
-
Здравствуйте У меня есть один TMemo в форме. Некоторый текст написан пользователем в нем. Есть кнопка стереть. Когда эта кнопка нажата, введенные данные обрабатываются и текст очищается с использованием следующего кода: EditBox.Lines.Clear; EditBox.Text: = EmptyStr; Когда приложение работает на устройстве, оно заметно удаляет текст после нажатия этой кнопки стереть. Однако, когда вы начинаете печатать снова, вы печатаете поверх старого текста. Например: 1- Исходный текст набран "123". 2- Нажата кнопка стереть. 3- Наблюдается, что редактирование содержимого визуально очищается. Текст не отображается. 4- Если вы наберете «456» в этом пустом редактировании, и после завершения ввода вы получите «123456» в самом редактировании. Точно так же, когда есть проблема с обработкой, приложение выбирает введенный текст. Если вы начнете печатать, новый текст добавляется, а не заменяется. как можно очистить память клавиатуры после удаление текста? заранее всем спасибо!
-
Всем доброго времени сутки Подскажите пожалуйста как поделиться несколько фотографиями, как поделиться 1 фотографией понятно но как сделать несколько отправок за 1 раз? то есть я выделил 3 фотки и хочу поделиться вайбере или вацапе
-
Пожалуйста если не сложно напишите пример как? спасибо