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

FeLDMARShaL

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

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

  • Посещение

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

    5

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

  1. Все сертификаты были созданы, подгружены, на этапе создания/подгрузки ни каких ошибок не выскакивало. Приложение запускается на реальном устройстве в режиме отладки без проблем. Подписываюсь на 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 Т.е. на вид эпловцы приняли наш пуш, но до устройства этот пуш не доходит почемуто. В чем собака зарыта не пойму. Нужен совет бывалых так сказать
  2. Помогло, спасибо.
  3. А вот еще сложнее задача. Есть компонент TImgae. И мы в этот компонент запихиваем изображение с камеры. Нужно сделать так чтобы камера нам давала именно такое изображение (в пикселах) сколько занимает этот компонент на экране. Т.е. нужно получить размер компонента в реальных пикселах. Баловался с AbsoluteHeight - не получилось, баловался с формулой преобразования - тоже без результатно. Вопрос как нам получить размер контрола в пекселах на экране телефона?
  4. Если кому интересно, то для iOS я метрику беру так: uses FMX.BehaviorManager .... var aFMXApplicationEventService: IFMXApplicationEventService; DeviceBehavior: IDeviceBehavior; DisplayMetrics: TDeviceDisplayMetrics; .... if TBehaviorServices.Current.SupportsBehaviorService( IDeviceBehavior, DeviceBehavior, Self) then DisplayMetrics := DeviceBehavior.GetDisplayMetrics(Self); Тема закрыта.
  5. хм, действительно. Наверно заработался немного а как на iOS узнать плотность? (пока еще не смотрел, но не думаю что там будет сложнее чем на андройде
  6. Увожаемые форумчане. Встал вопрос ребром. Есть ли способ (кросплотворменный желаельно, для мобильныз устройств,но в приоритете пока андройд) по которому можно выставить высоту какойнибуть панельки ровно 1 сантиметр. Невзирая на разрешение экрана и колличестовdpi у экрана. Т.е. нужен способ по которому можно зная дпи, зная размер экрна в пикселах узнать сколько на этом экране пикселов входит в 1 см. Т.е, к прмеру, верхнюю панель задать 1 сантиметр на всех мобильных устройствах.
  7. FeLDMARShaL

    permission

    Хм, действительно. Есть такие уведомления. Просветите меня безграмотного, это требование андройда, или бажинка делфи. Если второе то есть способ этого избежать?
  8. FeLDMARShaL

    permission

    Так в AndroidManifest.template.xml такой строчки нету, а если удалить из другого (тот который создается каждый раз при компиляции так толку не будет, он опять создаст его) Или Вы меете ввиду из какогото другого манифеста. В конечном итоге надо чтобы эти разрешения не запрашивались в самом приложении.
  9. FeLDMARShaL

    permission

    Использую XE8, и у меня в андройде появляются 2 разрешения которых не должно быть. Get Accounts и Wake Lock. Само собой проверил и в опциях напротив этих разрешений стоят галочки фолс. (и в олл, олл андроид, дебаг андроид , и в релиз андроид). Непонятно, откуда он их подгружает. Вручную в манифест само собой я их не добавлял. есть идеи как убрать эти 2 разрешения, или откуда они вообще берутся.
  10. Хм, неужели ни кто не знает. Нашел аналог в Andoid. У объекта TextView есть свойства: 1 колонка - название свойства (его можно изменить на этапе разработки), 2 колонка - функция котороая меняет это свойство в режиме runtime, 3 колонка - комментарий к свойствам. Мое кунфу в FMX недостаточно сильное, поэтому попробую предположить как это можно сделать (а если кто то сделает и выложит сюда результат то ему будет огромный респектос за это). Если делфийский TLabel как то связан с андройдовским TextView (или может быть какойнибуть другой компонент свзяан с этим классом) то можно поправить исходники так, чтобы необхадимую функцию можно было вызвать из делфи кода. Например, как в вопросе со шрифтом который подгружается как ресурс. П.С. ну и как всегда если всетаки ктонибуть сможет достигнуть желаемого результато (любым способом) то ждемс решения тутта
  11. Есть ли какой-нибудь способ уменьшить расстояние между строчками шрифта. Например, есть кнопка, у ней есть текст (ну или внутри нее есть лейбл, который растянут по все кнопке и создает эффект текста в самой кнопке, это не важно). Этот текст не помещается на одну строчку, при помощи свойства wordwrap текст переносится на 2 строку. Вот из-за того, что промежуток между первой и второй строкой большой вторая строка не помещается. Нужно этот промежуток уменьшить. Есть ли какой-нибудь способ, любой, кроме как 2 лейбла, каждый отвечает за "свою" строку и расположены они очень близко Знаю, что в нативной среде разработки есть способ менять размер между строками текста, а в делфи такую штуку реализовать можно? П.с. в первую очередь интересен андроид
  12. К сожелению нет, такой метод нам не подойдет...
  13. Ошибка такая: java.io.IOException:Prepare failed.:status=0x1 п.с. а в той теме которую Вы указали, один товарищ еще в мае написал: "Воспроизвести ситуацию удалось. Буду смотреть."... но я так понял ничего у него не получилось. А есть люди у которых получилось ЛЮБЫМ способом (может быть сторонними компонентами) нормально демонстрировать видео, хоть каковонибуть формата? (D.P.F Delphi Android Native Components, или еще какиенибуть компоненты, или дайте ссылку на какиенибуть компоненты я попробую, но гланое чтобы компоненты были бесплатными)
  14. Ну там 2 ошибки. Первая воникает когда мы первое видео закончили и пытаемся второе запустить... причем это даже не ошибка а предупреждение, мол не могу воспроизвести (хотя на самом деле может только не хочет), а вторая и последующие ошибки, сейчас точно не помню текст, завтра напишу, но в тексте ошибки присутсвует фраза prepare (подготовка). П.с. у меня немного другой случай, нежелы который привели Вы... у меня программа не вываливается, просто летят окна с ошибками и все, а программа остается висеть и типа работать...
  15. Вот кстати тело таймера: 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;
  16. Какаято странная получается история. Не могу стабильно заставить работать приложение для 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.
×
×
  • Создать...