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

Лидеры

  1. krapotkin

    krapotkin

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


    • Баллы

      5

    • Постов

      2 185


  2. Rusland

    Rusland

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


    • Баллы

      3

    • Постов

      1 204


  3. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      2

    • Постов

      842


  4. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      2

    • Постов

      2 517


Популярный контент

Показан контент с высокой репутацией 01.11.2016 во всех областях

  1. http://docwiki.embarcadero.com/Libraries/Seattle/en/System.SyncObjs например, критические секции, или менее известный http://docwiki.embarcadero.com/Libraries/XE5/en/System.SysUtils.TMultiReadExclusiveWriteSynchronizer
    3 балла
  2. Надо заменить путь на .\assets\internal , тогда System.IOUtils.TPath.GetDocumentsPath
    2 балла
  3. дело в том, что запуск сервиса определения координат требует времени. значительного. поэтому нельзя взять и написать LocationSensor1.Active := True; Lat := LocationSensor1.Sensor.Latitude; Long := LocationSensor1.Sensor.Longitude; нужно посмотреть демо из поставки студии. там все красиво и подробно расписано есть обработчик, который будет вызван, когда новые координаты будут получены а пока - пишите не определено и крутите AniIndicator
    2 балла
  4. вы пробовали купить в Google Play? попробуйте и все вопросы отпадут. не нужно её скрывать, пока человек не купит, он ее не установит на телефон
    1 балл
  5. Без обид, но когда так говорят, я считаю это отмазкой. Живём не в 20 веке, сейчас есть переводчики типа Google Переводчик, как минимум можно хоть попытаться прочитать (хотя там очень даже хорошо переводит)... Полезно скачать любую книжку по Android для разработчиков и почитать, там очень часто описывают основы. Ну и никто не отменял поисковики зачем нужна папка Android obb. В русскоязычном сегменте интернета, также полно информации. Далее по RAD Studio, не хотите читать справку, читайте книги, например, хорошие от автора Дмитрий Осипов: Delphi XE2 Базы данных и Delphi Delphi Программирование для Windows, OS X, iOS и Android А вообще, переводчик довольно неплохо справляется и вполне можно понять, что там в справке написано... p.s. Переписывать справку или книги на форум, у меня, желания нет...
    1 балл
  6. Кратко: вам необходимо изучить основы по Android'у Более полный ответ: В первую очередь читайте справку по Android'у и по RAD Studio, не надо сразу бежать на форум... всё уже давно описано. APK Expansion Files System.IOUtils.TPath Methods Standard RTL Path Functions across the Supported Target Platforms А также смотрите примеры идущие со студией. Не забудьте внимательно ознакомиться с правилами форума Далее... Читайте блоги по Delphi, там вы также найдёте ответы на большинство вопросов. Deployment Manager или куда ещё можно задеплоить файлы ещё добавлю, apk - это обычный zip файл, вы можете открыть его и посмотреть, что там внутри и где что лежит. Какой путь укажите, там и будут храниться, допустим вот так: TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'settings.ini')); p.s. Пожалуйста, соблюдайте правила форума и читайте справку. Тему перенёс в соответствующий раздел.
    1 балл
  7. Проблема решена: <key>NSPhotoLibraryUsageDescription </key> <string>To choose photo</string> <key>NSCameraUsageDescription </key> <string>Get photo</string> Обнаружен лишний пробел перед закрывающей </key>. Странно, но это все ломало. Убрать пробел: <key>NSPhotoLibraryUsageDescription</key> <string>To choose photo</string> <key>NSCameraUsageDescription</key> <string>Get photo</string>
    1 балл
  8. Rusland

    Перехват события звонка

    Вот пример, из которого вы можете видеть как перехватывать звонки (добавьте на форму Memo) uses CSBroadcastReceiver, Androidapi.JNI.JavaTypes.Own, Androidapi.Jni, AndroidApi.JNI.GraphicsContentViewText, Androidapi.Jni.JavaTypes, Androidapi.JNI.Os, Androidapi.JNIBridge, Androidapi.JNI.Telephony, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls; private { Private declarations } procedure CreateBroadcastReceiver; procedure BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); procedure CheckPhoneCallState(Context: JContext; Intent: JIntent); procedure CheckSmsInState(Context: JContext; Intent: JIntent); function KillCall(Context: JContext): Boolean; public { Public declarations } end; var Form1: TForm1; BroadcastReceiver: TCSBroadcastReceiver; implementation uses Androidapi.Jni.App, Androidapi.Helpers, Androidapi.Log; procedure TForm1.CreateBroadcastReceiver; begin if not Assigned(BroadcastReceiver) then begin BroadcastReceiver:= TCSBroadcastReceiver.Create(nil); BroadcastReceiver.OnReceive:= BroadcastReceiverOnReceive; BroadcastReceiver.RegisterReceive; BroadcastReceiver.Add('android.intent.action.PHONE_STATE'); BroadcastReceiver.Add('android.intent.action.NEW_OUTGOING_CALL'); end; end; procedure TForm1.CheckPhoneCallState(Context: JContext; Intent: JIntent); var telephonyService: JObject; telephonyManager: JTelephonyManager; state: JString; incomingCallNumber: string; outgoingCallNumber: string; outputResult: string; begin outputResult:= #13#10; telephonyService := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE); telephonyManager := TJTelephonyManager.Wrap((telephonyService as ILocalObject).GetObjectID); if JStringToString(Intent.getAction).Equals('android.intent.action.PHONE_STATE') then begin state:= Intent.getStringExtra(TJTelephonyManager.JavaClass.EXTRA_STATE); if state.equals(TJTelephonyManager.JavaClass.EXTRA_STATE_IDLE) then outputResult:= outputResult + 'Phone is IDLE ' + #13#10 else if state.equals(TJTelephonyManager.JavaClass.EXTRA_STATE_RINGING) then begin incomingCallNumber:= JStringToString(Intent.getStringExtra(TJTelephonyManager.JavaClass.EXTRA_INCOMING_NUMBER)); if incomingCallNumber.Equals('') then incomingCallNumber:= 'PRIVATE NUMBER'; outputResult:= outputResult + 'Phone is RINGING' + #13#10; outputResult:= outputResult + 'Incoming call from ' + incomingCallNumber + #13#10; if incomingCallNumber = '+79391234567' then /// телефон в черном списке // тут отбиваем звонок end else if state.equals(TJTelephonyManager.JavaClass.EXTRA_STATE_OFFHOOK) then outputResult:= outputResult + 'Phone is OFFHOOK' + #13#10; end else if JStringToString(Intent.getAction).Equals('android.intent.action.NEW_OUTGOING_CALL') then begin outgoingCallNumber:= JStringToString(Intent.getStringExtra(TJIntent.JavaClass.EXTRA_PHONE_NUMBER)); outputResult:= outputResult + 'Outgoing call to ' + outgoingCallNumber + #13#10; if outgoingCallNumber = '+79051234567' then /// телефон в черном списке begin BroadcastReceiver.SetResultData(nil); outputResult:= outputResult + 'Call is not allowed to ' + outgoingCallNumber + #13#10; end; end; Memo1.Lines.Append(outputResult); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Assigned(BroadcastReceiver) then BroadcastReceiver.Free; end; procedure TForm1.FormCreate(Sender: TObject); begin CreateBroadcastReceiver; end; Отправить на PHP сервер можно, например, через Indy компоненты.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...