Доброго времени суток!
Начну я свой бложик с модуля FMX.DeviceInfo, суть его заключается в том, чтобы получить доступную информацию о девайсе, на котором запущено приложение.
Итак, по шагам:
1. Положить модуль FMX.DeviceInfo в папку с проектом
2. Подключить его в нужном модуле (прописать в uses секции)
3. Для платформы Android нужно добавить разрешения (permissions) в Debug и Release конфиги
READ_PHONE_STATE
ACCESS_NETWORK_STATE
ACCESS_WIFI_STATE
4. В OnShow вызываем процедуру DeviceInfoByPlatform
5. Теперь подробней….
Начну я свой бложик с модуля FMX.DeviceInfo, суть его заключается в том, чтобы получить доступную информацию о девайсе, на котором запущено приложение.
Итак, по шагам:
1. Положить модуль FMX.DeviceInfo в папку с проектом
2. Подключить его в нужном модуле (прописать в uses секции)
3. Для платформы Android нужно добавить разрешения (permissions) в Debug и Release конфиги
READ_PHONE_STATE
ACCESS_NETWORK_STATE
ACCESS_WIFI_STATE
4. В OnShow вызываем процедуру DeviceInfoByPlatform
5. Теперь подробней….
При вызове DeviceInfoByPlatform, у нас происходит получение информации о девайсе, хранится эта информация в структуре (record), доступна по глобальной переменной DeviceInfo
Вот наша структура
type TmyDeviceInfo = record diPlatform: string; diPlatformT: TOSVersion.TPlatform; diArchitecture: string; diArchitecture2: string; diArchitectureT: TOSVersion.TArchitecture; diMacAddress: string; diIPAddress: string; diPlatformVer: string; diDevice: string; diLang: string; diScreenPhis: string; diScreenLogic: string; diScreenWidth: Single; diScreenHeight: Single; diScale: Single; diMobileOperator: string; diTimeZone: integer; diIsIntel: Boolean; end;
тут нужно уточнить, что IP и MAC адрес не на всех платформах будет определяться.
[ANDROID] MAC адрес - с версии 6+ стоит заглушка которая всегда отправляет 02:00:00:00:00:00, подробней
[ANDROID] IP адрес - реализовано только через Wi-Fi
[IOS/MacOS] IP адрес всегда unknown
[IOS] MAC адрес - UUID идентификатор устройства
diMobileOperator - определяется только на Android, из-за бага который появился в Berlin Update 1 перестал определяться оператор на iOS
diIsIntel - поможет определить процессор, актуально для Android планшетов на базе Intel Atom
Также в модуле есть методы:
- проверка соединения с интернетом [WINDOWS/ANDROID]
function IsNetConnected: Boolean;
- проверка на включенный GPS [ANDROID]
function IsGPSActive(HIGH_ACCURACY: Boolean = False): Boolean;
- ну и остальные, не требующие описания
function IsDeviceType: TDeviceInfo.TDeviceClass; function IsTablet: Boolean; function IsPortraitOrientation: Boolean; function IsLargePhone: Boolean;
Скриншоты и исходники доступны на GitHub
В следующих постах постараюсь описать подробней ModernListView (описание на fmxexpress)
Комментариев нет :
Отправка комментария