-
Постов
28 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Активность репутации
-
ophion получил реакцию от Ingalime в Как получить IMEI?
Дам вам подсказку из Android доков...
public String getDeviceId () Added in API level 1 Returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.
Requires Permission: READ_PHONE_STATE
public String getDeviceId (int slotId) Added in API level 23 Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for CDMA phones. Return null if device ID is not available.
Requires Permission: READ_PHONE_STATE
Parameters slotId of which deviceID is returned
-
ophion получил реакцию от beklexx в [Android] Использование ACloseDialogProc в MessageDlg
Коротко объясню....
ACloseDialogProc - это процедура-обработчик результатов, полученных при помощи MessageDlg, поскольку в этой версии RAD XE7 все диалоги являются не блокирующими, т.е. во время показа диалога, продолжается выполнение следующих строк кода.
Вам необходимо объявить новую процедуру, которая будет вызываться после нажатия любых кнопок в MessageDlg.
Т.е. будет что-то вроде
procedure TForm1.doSomethingWithDialogResult(const AResult: TModalResult); begin if AResult=mrYes then begin {тут обработка нажатия кнопки Yes} end; end; а вызвать диалог необходимо следующим образом
MessageDlg('Тут текст сообщения', TMsgDlgType.mtConfirmation, mbYesNo, 0, doSomethingWithDialogResult); -
ophion отреагировална aldi в Доработка компонента для чтения штрих-кодов под RAD XE7
function TMainForm.CheckBarcode :boolean; var list : TStringList; begin Result := true; {$IFDEF Android} if BarcodeChecked then exit; list := TAndroidHelperClass.getListOfApplications(); if list = nil then exit; try if not (list.Text.Contains('com.google.zxing.client.android')) then begin Result := false; MessageDlg('This application requires a QR code scanner application.'), TMsgDlgType.mtCustom, [TMsgDlgBtn.mbOK], 0, procedure(const AResult: TModalResult) begin TAndroidHelperClass.openGooglePlayByAppPackage('com.google.zxing.client.android'); end); exit; end else BarcodeChecked := true; finally list.Free; end; {$ENDIF} end; -
ophion получил реакцию от Brovin Yaroslav в [TidHTTP] Скачивание файлов без замораживания пользовательского интерфейса
Грузить в отдельном потоке?!
-
ophion отреагировална Alexey Lovchikov в Доработка компонента для чтения штрих-кодов под RAD XE7
Написал небольшой класс по работе с сканером
Проверял на XE7 Update 1 под Android 4.1.2
Пример
Barcode.zip
-
ophion получил реакцию от Kitty в Получение координат устройства Андроид
Реализации сервисных приложений под Android имели место, и об этом есть пара статей http://blog.blong.com/2013/11/delphi-and-android-services.html и http://blog.blong.com/2013/11/delphi-and-android-services-part-2.html
Надеюсь, это Вам поможет
-
ophion получил реакцию от Brovin Yaroslav в [Android] Использование ACloseDialogProc в MessageDlg
Прошу извинить меня.
Допустил опечатку, но уже подправил.
const Sender:TObject - был лишним.
-
ophion получил реакцию от Евгений Корепов в [Android] Использование ACloseDialogProc в MessageDlg
Коротко объясню....
ACloseDialogProc - это процедура-обработчик результатов, полученных при помощи MessageDlg, поскольку в этой версии RAD XE7 все диалоги являются не блокирующими, т.е. во время показа диалога, продолжается выполнение следующих строк кода.
Вам необходимо объявить новую процедуру, которая будет вызываться после нажатия любых кнопок в MessageDlg.
Т.е. будет что-то вроде
procedure TForm1.doSomethingWithDialogResult(const AResult: TModalResult); begin if AResult=mrYes then begin {тут обработка нажатия кнопки Yes} end; end; а вызвать диалог необходимо следующим образом
MessageDlg('Тут текст сообщения', TMsgDlgType.mtConfirmation, mbYesNo, 0, doSomethingWithDialogResult); -
ophion отреагировална estra в Доработка компонента для чтения штрих-кодов под RAD XE7
Там адаптировать нечего, всего 2 изменения в файле FMX.TKRBarCodeScanner.pas.
1.
// было uses System.Classes {$IFDEF IOS} ,FMX.TMSZBarReader {$ENDIF} {$IFDEF ANDROID} ,FMX.Platform, FMX.Helpers.Android, System.Rtti, FMX.Types, System.SysUtils, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, FMX.StdCtrls, FMX.Edit {$ENDIF} ; // стало uses System.Classes {$IFDEF IOS} ,FMX.TMSZBarReader {$ENDIF} {$IFDEF ANDROID} ,FMX.Platform, FMX.Helpers.Android, System.Rtti, FMX.Types, System.SysUtils, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, FMX.StdCtrls, FMX.Edit {$IF CompilerVersion >= 20} ,Androidapi.Helpers {$ENDIF} {$ENDIF} ; 2
// было {$IFDEF ANDROID} function TTKRBarCodeScanner.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; begin Result := False; if FMonitorClipboard and (AAppEvent = aeBecameActive) then begin Result := GetBarcodeValue; end; end; {$ENDIF} // стало {$IFDEF ANDROID} function TTKRBarCodeScanner.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; begin Result := False; if FMonitorClipboard and (AAppEvent = {$IF CompilerVersion >= 20}TApplicationEvent.{$ENDIF}aeBecameActive) then begin Result := GetBarcodeValue; end; end; {$ENDIF} -
ophion получил реакцию от Brovin Yaroslav в [Android] Использование ACloseDialogProc в MessageDlg
Коротко объясню....
ACloseDialogProc - это процедура-обработчик результатов, полученных при помощи MessageDlg, поскольку в этой версии RAD XE7 все диалоги являются не блокирующими, т.е. во время показа диалога, продолжается выполнение следующих строк кода.
Вам необходимо объявить новую процедуру, которая будет вызываться после нажатия любых кнопок в MessageDlg.
Т.е. будет что-то вроде
procedure TForm1.doSomethingWithDialogResult(const AResult: TModalResult); begin if AResult=mrYes then begin {тут обработка нажатия кнопки Yes} end; end; а вызвать диалог необходимо следующим образом
MessageDlg('Тут текст сообщения', TMsgDlgType.mtConfirmation, mbYesNo, 0, doSomethingWithDialogResult);