Активность

Лента обновляется автоматически     

  1. Последний час
  2. Нет никаких вопросов. Утилита adb показывает, что и устройство, и эмулятор авторизованы.
  3. У меня во время установки приложения через ИДЕ мобильное устройство спрашивает разрешение на это действие, и если я не соглашусь в течении нескольких(10) секунд - идет отказ и выдает ошибку как у тебя. Попробуй так же по-наблюдать за поведением мобильного устройства во время установки приложения на него. Возможно нужно дать на это разрешение и тебе?
  4. Ссылки на NDK в среде где-то жёстко прописаны? Экспериментирую с NDK/SDK. Собираю проект - ошибка. В SDK Manager одно прописано, а используется другое.
  5. Почему там 25, а ниже 21? Какие версии с какими можно комбинировать?
  6. А есть какая-то связь или зависимость между версиями SDK и NDK, когда прописываешь это всё в настройках SKD Manager`а?
  7. Сегодня
  8. HTC One Max, Android 5. Пару часов назад было всё норм. Эмулятор на базе Android 7. Здесь тоже приложение устанавливалось и запускалось. Сравнительно шустро даже.
  9. Проект (android) компилируется и собирается без проблем. Но когда выбираешь устройство или эмулятор и нажимаешь F9, то процесс виснет на этапе installing. Перезагрузка ПК не помогает. Что проверять, куда смотреть?
  10. Ок. Как вариант, что можно придумать, чтобы показать из службы что-то вроде Toast, но чтобы это небольшое окошко/надпись была на экране значительно дольше + вставить туда кроме надпись, ещё и значок. Задача простая. При звонке показать, что номер телефона имеет такой-то признак. Чтобы пользователь смартфона видел это при вход./исход. звонке.
  11. Дак меняйте тогда только то, что не может поменяться по желанию идеры
  12. Спасибо, интересная статья. Кстати, а почему при старте вызывается OnResize аж трижды?
  13. Сортировка FDTable

    Зачем вообще использовать FDTable? Не лучше ли использовать FDQuery и писать там нужные запросы к БД с нужной сортировкой (ORDER BY)? Необходимость в FDMemTable я ещё понимаю, частенько использую, но вот смысла существования FDTable я вообще не вижу. Если только просто в приложении отображать или считывать содержание таблицы, но это очень редко нужно. Обычно всегда требуются всякие сортировки, группировки, условия, JOIN'ы и т.д.
  14. Сортировка FDTable

    Наличие индекса не обязательно - работает и так. А вот пробел между именем поля и "направлением" сортировки действительно надо без проблема. Ссори - не указал это
  15. Да, не пользуюсь. Я побоялся, что при выходе обновлений или новых версий Delphi, придётся всё снова править или ещё что-то.
  16. Что невозможно сделать на Delphi для Android?

    Я заметил, что, если в приложении есть хоть один 3D объект, то приложение открывается и срузу закрывается, не выкидывая никаких exeption'ов. А недавно то же самое поведение я заметил, если в приложении есть функционал по работе с SOAP сервисом, добавленном через "Import WSDL".
  17. ModernLV тоже не пользуетесь по религиозным соображениям?
  18. Ошибка моя, нужно было ismed img_is_med = 'drawable/ismed';
  19. Редактировать геном - это табу.
  20. При попытке подключиться к базе данных SQLite на эмуляторе с Android 7 получаю исключение: Delphi Tokyo + UniDAC 7. Эмулятор какой-то неполноценный?
  21. Первый ресурс (ismed) - будет 0, т.е. его нет, потому как в деплое он обозначен как ismed.png. Второй ресурс нашелся. На мой взгляд, лучше скопируйте себе System.Android.Notification, и внесите правки в него. Функция CreateNativeNotification (в Берлине 125 строка). Там можете и картинки назначать, и кнопку создать, и прогресс, и хронометр тот же вывести, в общем, процесс для творчества будет безграничен. Так же и к предыдущей теме вашей пригодится - тот же .startForeground для сервиса, ну или "несмахиваемое" уведомление (.setOngoing(True))
  22. Прочитайте эту статью: http://delphifmandroid.blogspot.com/2016/09/delphi-android.html
  23. Как в приложении узнать, что в данный момент приложение свернуто и не находится на главном экране? Спасибо!
  24. Вот простой пример накидал. Главная форма, поток, две очереди (очередь запросов и очередь ответов). Вы в главной форме вбивате два числа, и нажимаете кнопку по своему усмотрению (прибавить, умножить, разделить). Числа отправляются в Очередь запросов, поток получает задачу, выполняет и отправляет ответ в очередь ответов. Главная форма, в Application.OnIdle ждет получения результатов проверяя Очередь ответов, при получении добавляет их в Memo. Все. Проект прилагаю в архиве, вот листинг: unit UnitFormMain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Generics.Collections, FMX.StdCtrls, FMX.Edit, FMX.EditBox, FMX.NumberBox, FMX.Layouts, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo; type TThreadOperation = (Sum, Mult, Divinity); TThreadDataRequest = record A : Double; B : Double; Operation : TThreadOperation; end; TThreadDataAnswer = record Operation : TThreadOperation; A : Double; B : Double; X : Double; ErrorMessage : String; end; TQueueRequest = TThreadedQueue<TThreadDataRequest>; TQueueAnswer = TThreadedQueue<TThreadDataAnswer>; TExcampleThread = class(TThread) protected FQueueRequest: TQueueRequest; FQueueAnswer: TQueueAnswer; procedure Execute; override; public constructor Create(AQueueRequest : TQueueRequest; AQueueAnswer : TQueueAnswer); reintroduce; end; TFormMain = class(TForm) Memo: TMemo; Layout1: TLayout; Label1: TLabel; Label2: TLabel; ButtonSum: TButton; ButtonMult: TButton; ButtonDiv: TButton; EditA: TEdit; EditB: TEdit; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ButtonClick(Sender: TObject); private { Private declarations } FQueueRequest: TQueueRequest; // Очередь запросов FQueueAnswer : TQueueAnswer; // Очередь ответов FExcampleThread : TExcampleThread; procedure OnApplicationIdle(Sender : TObject; var Done: Boolean); public { Public declarations } end; var FormMain: TFormMain; implementation {$R *.fmx} procedure TFormMain.FormCreate(Sender: TObject); begin FQueueRequest:=TQueueRequest.Create(10, 1000, 10); FQueueAnswer:=TQueueAnswer.Create(10, 1000, 10); Application.OnIdle:=OnApplicationIdle; FExcampleThread:=TExcampleThread.Create(FQueueRequest, FQueueAnswer); end; procedure TFormMain.FormDestroy(Sender: TObject); begin if Assigned(FExcampleThread) then begin FExcampleThread.Terminate; FExcampleThread.WaitFor; FExcampleThread.Free; end; if Assigned(FQueueRequest) then FQueueRequest.Free; if Assigned(FQueueAnswer) then FQueueAnswer.Free; end; procedure TFormMain.OnApplicationIdle(Sender : TObject; var Done: Boolean); Var AThreadDataAnswer : TThreadDataAnswer; S : String; begin if FQueueAnswer.PopItem(AThreadDataAnswer) = TWaitResult.wrSignaled then begin case AThreadDataAnswer.Operation of TThreadOperation.Sum : S:=' + '; TThreadOperation.Mult : S:=' * '; TThreadOperation.Divinity : S:=' / '; end; S:=AThreadDataAnswer.A.ToString + S + AThreadDataAnswer.B.ToString + ' = '; if Not AThreadDataAnswer.ErrorMessage.IsEmpty then S:=S + AThreadDataAnswer.ErrorMessage else S:=S + AThreadDataAnswer.X.ToString; Memo.Lines.Add(S); end; end; constructor TExcampleThread.Create(AQueueRequest : TQueueRequest; AQueueAnswer : TQueueAnswer); begin FQueueRequest:=AQueueRequest; FQueueAnswer:=AQueueAnswer; Inherited Create(False); end; procedure TExcampleThread.Execute; Var AThreadDataRequest : TThreadDataRequest; AThreadDataAnswer : TThreadDataAnswer; begin while Not Terminated do begin if FQueueRequest.PopItem(AThreadDataRequest) = TWaitResult.wrSignaled then begin AThreadDataAnswer.Operation:=AThreadDataRequest.Operation; AThreadDataAnswer.ErrorMessage:=''; AThreadDataAnswer.A:=AThreadDataRequest.A; AThreadDataAnswer.B:=AThreadDataRequest.A; AThreadDataAnswer.X:=0; try case AThreadDataRequest.Operation of TThreadOperation.Sum : AThreadDataAnswer.X:=AThreadDataRequest.A + AThreadDataRequest.B; TThreadOperation.Mult : AThreadDataAnswer.X:=AThreadDataRequest.A * AThreadDataRequest.B; TThreadOperation.Divinity : AThreadDataAnswer.X:=AThreadDataRequest.A / AThreadDataRequest.B; end; except on E : Exception do AThreadDataAnswer.ErrorMessage:=E.Message; end; FQueueAnswer.PushItem(AThreadDataAnswer); end; TThread.Sleep(10); end; end; procedure TFormMain.ButtonClick(Sender: TObject); Var AThreadDataRequest : TThreadDataRequest; begin AThreadDataRequest.A:=EditA.Text.ToDouble; AThreadDataRequest.B:=EditB.Text.ToDouble; Case TButton(Sender).Tag of 1 : AThreadDataRequest.Operation:=TThreadOperation.Sum; 2 : AThreadDataRequest.Operation:=TThreadOperation.Mult; 3 : AThreadDataRequest.Operation:=TThreadOperation.Divinity; End; FQueueRequest.PushItem(AThreadDataRequest); end; end. test116 TThreadedQueue.zip
  25. Что невозможно сделать на Delphi для Android?

    Я думаю, неправильно все косяки сваливать на Firemonkey. Мы сами нередко виноваты в глюках Android-приложений.
  26. Добавить SDK 21

    там, 25, там 27, там 21 Так какой-же API level у меня в приложении?
  1. Загрузить ещё активность