FeLDMARShaL
Пользователи-
Постов
144 -
Зарегистрирован
-
Посещение
-
Победитель дней
5
Весь контент FeLDMARShaL
-
Все сертификаты были созданы, подгружены, на этапе создания/подгрузки ни каких ошибок не выскакивало. Приложение запускается на реальном устройстве в режиме отладки без проблем. Подписываюсь на push вот этим кодом: APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS); AServiceConnection := TPushServiceConnection.Create(APushService); AServiceConnection.Active := True; AServiceConnection.OnChange := OnChange; AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; ADeviceID - это ид устройства (не пустое), ADeviceToken - после того как кликнули на устрйостве разрешать уведомления, стало не пустым, т.е. тоже заполняется без проблемм. Сгенерировал по мануалу для xCode сертификат (ck.pem), и пытаюсь через php отправить уведомление: $deviceToken = 'b955e85038ec8c3bddec68ccde3d8a9e03a22f3d9383f43b40b074fdfc29c1ee'; $passphrase = '1234'; $message = 'A push notification has been sent!'; $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); if (!$fp) exit("Failed to connect: $err $errstr" . PHP_EOL); echo 'Connected to APNS' . PHP_EOL; $body['aps'] = array( 'alert' => array( 'body' => $message, 'action-loc-key' => 'Bango App', ), 'badge' => 2, 'sound' => 'oven.caf', ); $payload = json_encode($body); $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; $result = fwrite($fp, $msg, strlen($msg)); if (!$result) echo 'Message not delivered' . PHP_EOL; else echo 'Message successfully delivered' . PHP_EOL . $result; fclose($fp); Результат выполнения пхп скрипта: Connected to APNS Message successfully delivered 158 Т.е. на вид эпловцы приняли наш пуш, но до устройства этот пуш не доходит почемуто. В чем собака зарыта не пойму. Нужен совет бывалых так сказать
-
Помогло, спасибо.
-
А вот еще сложнее задача. Есть компонент TImgae. И мы в этот компонент запихиваем изображение с камеры. Нужно сделать так чтобы камера нам давала именно такое изображение (в пикселах) сколько занимает этот компонент на экране. Т.е. нужно получить размер компонента в реальных пикселах. Баловался с AbsoluteHeight - не получилось, баловался с формулой преобразования - тоже без результатно. Вопрос как нам получить размер контрола в пекселах на экране телефона?
-
Если кому интересно, то для iOS я метрику беру так: uses FMX.BehaviorManager .... var aFMXApplicationEventService: IFMXApplicationEventService; DeviceBehavior: IDeviceBehavior; DisplayMetrics: TDeviceDisplayMetrics; .... if TBehaviorServices.Current.SupportsBehaviorService( IDeviceBehavior, DeviceBehavior, Self) then DisplayMetrics := DeviceBehavior.GetDisplayMetrics(Self); Тема закрыта.
-
хм, действительно. Наверно заработался немного а как на iOS узнать плотность? (пока еще не смотрел, но не думаю что там будет сложнее чем на андройде
-
Увожаемые форумчане. Встал вопрос ребром. Есть ли способ (кросплотворменный желаельно, для мобильныз устройств,но в приоритете пока андройд) по которому можно выставить высоту какойнибуть панельки ровно 1 сантиметр. Невзирая на разрешение экрана и колличестовdpi у экрана. Т.е. нужен способ по которому можно зная дпи, зная размер экрна в пикселах узнать сколько на этом экране пикселов входит в 1 см. Т.е, к прмеру, верхнюю панель задать 1 сантиметр на всех мобильных устройствах.
-
Хм, действительно. Есть такие уведомления. Просветите меня безграмотного, это требование андройда, или бажинка делфи. Если второе то есть способ этого избежать?
-
Так в AndroidManifest.template.xml такой строчки нету, а если удалить из другого (тот который создается каждый раз при компиляции так толку не будет, он опять создаст его) Или Вы меете ввиду из какогото другого манифеста. В конечном итоге надо чтобы эти разрешения не запрашивались в самом приложении.
-
Использую XE8, и у меня в андройде появляются 2 разрешения которых не должно быть. Get Accounts и Wake Lock. Само собой проверил и в опциях напротив этих разрешений стоят галочки фолс. (и в олл, олл андроид, дебаг андроид , и в релиз андроид). Непонятно, откуда он их подгружает. Вручную в манифест само собой я их не добавлял. есть идеи как убрать эти 2 разрешения, или откуда они вообще берутся.
-
Хм, неужели ни кто не знает. Нашел аналог в Andoid. У объекта TextView есть свойства: 1 колонка - название свойства (его можно изменить на этапе разработки), 2 колонка - функция котороая меняет это свойство в режиме runtime, 3 колонка - комментарий к свойствам. Мое кунфу в FMX недостаточно сильное, поэтому попробую предположить как это можно сделать (а если кто то сделает и выложит сюда результат то ему будет огромный респектос за это). Если делфийский TLabel как то связан с андройдовским TextView (или может быть какойнибуть другой компонент свзяан с этим классом) то можно поправить исходники так, чтобы необхадимую функцию можно было вызвать из делфи кода. Например, как в вопросе со шрифтом который подгружается как ресурс. П.С. ну и как всегда если всетаки ктонибуть сможет достигнуть желаемого результато (любым способом) то ждемс решения тутта
-
Есть ли какой-нибудь способ уменьшить расстояние между строчками шрифта. Например, есть кнопка, у ней есть текст (ну или внутри нее есть лейбл, который растянут по все кнопке и создает эффект текста в самой кнопке, это не важно). Этот текст не помещается на одну строчку, при помощи свойства wordwrap текст переносится на 2 строку. Вот из-за того, что промежуток между первой и второй строкой большой вторая строка не помещается. Нужно этот промежуток уменьшить. Есть ли какой-нибудь способ, любой, кроме как 2 лейбла, каждый отвечает за "свою" строку и расположены они очень близко Знаю, что в нативной среде разработки есть способ менять размер между строками текста, а в делфи такую штуку реализовать можно? П.с. в первую очередь интересен андроид
-
К сожелению нет, такой метод нам не подойдет...
- 8 ответов
-
- Delphi XE7
- TMediaPlayer
-
(и ещё 1 )
C тегом:
-
Ошибка такая: java.io.IOException:Prepare failed.:status=0x1 п.с. а в той теме которую Вы указали, один товарищ еще в мае написал: "Воспроизвести ситуацию удалось. Буду смотреть."... но я так понял ничего у него не получилось. А есть люди у которых получилось ЛЮБЫМ способом (может быть сторонними компонентами) нормально демонстрировать видео, хоть каковонибуть формата? (D.P.F Delphi Android Native Components, или еще какиенибуть компоненты, или дайте ссылку на какиенибуть компоненты я попробую, но гланое чтобы компоненты были бесплатными)
- 8 ответов
-
- Delphi XE7
- TMediaPlayer
-
(и ещё 1 )
C тегом:
-
Ну там 2 ошибки. Первая воникает когда мы первое видео закончили и пытаемся второе запустить... причем это даже не ошибка а предупреждение, мол не могу воспроизвести (хотя на самом деле может только не хочет), а вторая и последующие ошибки, сейчас точно не помню текст, завтра напишу, но в тексте ошибки присутсвует фраза prepare (подготовка). П.с. у меня немного другой случай, нежелы который привели Вы... у меня программа не вываливается, просто летят окна с ошибками и все, а программа остается висеть и типа работать...
- 8 ответов
-
- Delphi XE7
- TMediaPlayer
-
(и ещё 1 )
C тегом:
-
Вот кстати тело таймера: procedure TForm1.Timer1Timer(Sender: TObject); begin if MediaPlayer1.State = TMediaState.Playing then Exit; MediaPlayer1.Stop; MediaPlayer1.Clear; if MediaPlayer1.Tag=0 then begin MediaPlayer1.FileName := '/mnt/sdcard/TabletApp/Оборудование учебного класса КИГМ 23.mp4'; MediaPlayer1.Tag := 1; end else begin MediaPlayer1.Tag := 0; MediaPlayer1.FileName := '/mnt/sdcard/TabletApp/dry-cleaning.mp4'; end; MediaPlayer1.Play; end;
- 8 ответов
-
- Delphi XE7
- TMediaPlayer
-
(и ещё 1 )
C тегом:
-
TMediaPlayer, воспроизведение списка видео файлов по порядку
FeLDMARShaL опубликовал вопрос в TMediaPlayer
Какаято странная получается история. Не могу стабильно заставить работать приложение для Android при использовании TMediaPlayer. Создаю простое приложени: на форму кидаю Tmediaplayer, TTimer, в само андроид устройство заливаю два небольших mp4 файлика (по отдельности проверил mediaplayer их нормально воспроизводит). Задача така поочереди их воспроизводить. В теле таймера простенький код: 1) Проверяем состоянеи плеера, если плер играет то выходим 2) Если плеер закончил играть, посылаем команду стоп, затем команду clear, изменяем filename на другое, пытаемся запустить 2 видео и ... бац ошибка. В xe6 такой код работал на ура, в хе7 ерунда какаято. П.С. еще бажина: создаем 3 медиаплеера, каждому задаем пути до разных файлов, и после компиляции сразу бабац ошибка. может у меня карма плохая, может ктонибуть написать приложение самое наипростешеей которое позволяло бы прокручивать хотябы 2 медиа файла поочереди. П.С. у когонибуть есть удачный опыт подключения нативного videoview (например из вот этих компонентов D.P.F Delphi Android Native Components). Потомучто цель программы прокручивать без остановки видео, программа пишется за 2 минуты но из за косяков я прям даже не заню что делать. Приму любые дельные советы по поводу проигрывания видео на android.- 8 ответов
-
- Delphi XE7
- TMediaPlayer
-
(и ещё 1 )
C тегом: