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

DeviceInfo - модуль для получения информации о девайсе


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

Вопрос

  • Модераторы

DeviceInfo - модуль для получения информации о девайсе

Цитата

 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;
Цитата
  • function IsNetConnected: Boolean; - check Internet connection [ANDROID, WINDOWS]
  • function IsNetConnectionType: TmyConnectionType; - internet connection type [ANDROID, WINDOWS]
  • function IsNetworkType: TmyNetworkType; - mobile network type [ANDROID]
  • function IsGPSActive(HIGH_ACCURACY: Boolean = False): Boolean; - GPS enabled? [ANDROID]
  • function IsDeviceType: TDeviceInfo.TDeviceClass; - device type (Unknown, Desktop, Phone, Tablet, etc) [ALL PLATFORMS]
  • function IsTablet: Boolean; - the application is running on the tablet? [ALL PLATFORMS]
  • function IsPortraitOrientation: Boolean; - current orientation is a Portrait? [ALL PLATFORMS]
  • function IsLargePhone: Boolean; - Phablet? [ANDROID/IOS]

Android || Windows || IOS || MAC OS

Screenshot_2015-09-23-13-32-36.png 2015-09-23 13-34-11 Form9.png ios.png macos.png

2016-03-16 18-00-10 dbForge Studio for MySQL - fx.fx_installs (бесплатно для некоммерческого использования).png

Intel планшет

Screenshot_2016-09-26-12-12-27.png

для Андроида нужно включить разрешения (permission)

Цитата

 

access_network_state

access_wifi_state

 

Ссылка на GitHub

Изменено пользователем ZuBy
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Проверил на тв-приставке. Все отлично, кроме определения сетевых параметров. На приставке wifi выключен, имеется 100Мбит ethernet подключение. Скриншот прилагаю. Прошу прощения за качество, не допер как сделать скриншот с телевизора (или приставки), так что сфотографировал экран ;-)

IMAG0492.jpg

Ссылка на комментарий
  • 0
  • Модераторы

спасибо, круто) я проверял на android wear тоже все показало.

а сетевые параметры считываются только по вайфай, поэтому там пусто

Ссылка на комментарий
  • 0
15 часов назад, Равиль Зарипов (ZuBy) сказал:

спасибо, круто) я проверял на android wear тоже все показало.

а сетевые параметры считываются только по вайфай, поэтому там пусто

А вот как получить параметры Ethernet?

Кстати вот еще способ получения дополнительных параметров:

Папка /sys/class/, в ней много всего, к примеру display, ethernet, input, net, video.

Вот некоторые файлы папки /sys/class/net/eth0/ (через тире их содержимое):

address - f8:f0:82:4f:06:17
carrier - 1
duplex - full
mtu - 1500
operstate - up
speed - 100

P.S. Кстати для просмотра содержимого удобно поставить ftp-сервер на устройство и с компа клиентом, к примеру Far Manager, смотреть.

Изменено пользователем Евгений Корепов
Ссылка на комментарий
  • 0
В 05.11.2015 в 14:37, Равиль Зарипов (ZuBy) сказал:

Android 6.0 и выше, не выдаёт Bluetooth, Wi-Fi MacAddress

по дефалту 02:00:00:00:00:00

подробней

Добрый день. А как еще можно в 6 и выше получить уникальные данные данного устройства?

 

Ссылка на комментарий
  • 0
  • Модераторы
49 минут назад, SVTX сказал:

Добрый день. А как еще можно в 6 и выше получить уникальные данные данного устройства?

Добрый день, а что за уникальные данные?

Ссылка на комментарий
  • 0
1 минуту назад, Равиль Зарипов (ZuBy) сказал:

Добрый день, а что за уникальные данные?

Мы брали Mac адресс как уникальный ID устройства. Для синхронизации данных. Если для версии 6 и выше МАС всегда  02:00:00:00:00:00 то логика приложения полностью ломается. Если можно подскажите как получить МАС для >6 или какойто другой уникальный идентификатор для Андроид устройств. Спасибо.

Ссылка на комментарий
  • 0
  • Модераторы

ну если вам для андроида, то есть один вариант

ANDROID_ID

  // uses Androidapi.Helpers, Androidapi.JNI.Provider;
  // permission read_phone_state
  ShowMessage(JStringToString(TJSettings_Secure.JavaClass.getString(TAndroidHelper.ContentResolver,
    TJSettings_Secure.JavaClass.ANDROID_ID)));

 

Ссылка на комментарий
  • 0
15 часов назад, Равиль Зарипов (ZuBy) сказал:

ну если вам для андроида, то есть один вариант

ANDROID_ID


  // uses Androidapi.Helpers, Androidapi.JNI.Provider;
  // permission read_phone_state
  ShowMessage(JStringToString(TJSettings_Secure.JavaClass.getString(TAndroidHelper.ContentResolver,
    TJSettings_Secure.JavaClass.ANDROID_ID)));

 

Да я смотрел в эту сторону. Но пишут что у Китайских девайсов он одинаковый) не знаю насколько достоверна эта информация)

Ссылка на комментарий
  • 0
  • Модераторы
50 минут назад, SVTX сказал:

Да я смотрел в эту сторону. Но пишут что у Китайских девайсов он одинаковый) не знаю насколько достоверна эта информация)

да есть такое.

но китай это имеется ввиду, те аппараты которые просто шлак. для примера на вид айфон, внутри андроид

я бы по этому поводу даже не переживал, Meizu, ZTE и прочие качественные (истинные) китайцы, такой проблемой не страдают

Ссылка на комментарий
  • 0
22 часа назад, SVTX сказал:

Да я смотрел в эту сторону. Но пишут что у Китайских девайсов он одинаковый) не знаю насколько достоверна эта информация)

Рекомендую при первом запуске генерировать GUID (System.SysUtils.CreateGUID), записывать в файл и использовать его. Привязка к железу это хорошо, но требует дополнительных разрешений, не понятных пользователю. И китайцы рано или поздно выпустят что то такое, где ваш код работать не будет.

Ссылка на комментарий
  • 0
В 24.03.2017 в 10:42, Евгений Корепов сказал:

Рекомендую при первом запуске генерировать GUID (System.SysUtils.CreateGUID), записывать в файл и использовать его

Но ведь если скопировать этот файл на другое устройство - вся логика привязки сломается.. и возможен несанкционированный вход.. 

 

Ссылка на комментарий
  • 0
3 часа назад, Сергей Сергеев сказал:

Но ведь если скопировать этот файл на другое устройство - вся логика привязки сломается.. и возможен несанкционированный вход.. 

 

Ну речь не шла о безопасности/авторизации/аутентификация. Речь была о получении уникального идентификатора на устройство.

Если нужна авторизация, то ее разумно делать не локально в приложении, а на некоем сервере (а приложение в этом случае выступает тонким клиентом).

И как правильно выше отметил Slym - для доступа к файлам приложения вам нужно взломать устройство (получить доступ пользователя root). ССЗБ - аббревиатура в данном контексте означает некие изначально ошибочные решения принятые разработчиком приложения ))) Погуглите ))))

Ссылка на комментарий
  • 0
39 минут назад, Евгений Корепов сказал:

Если нужна авторизация, то ее разумно делать не локально в приложении, а на некоем сервере (а приложение в этом случае выступает тонким клиентом).

это то сделано, я как раз ищу способ идентификации устройства, чтобы в БД запомнить, что пользователь привязал это устройство как доверенное, и при прикладывании "правильного" пальца к сканеру отпечатков ,с этого устройства можно войти без набора пароля ( послав некий УИД устройства (?) ).

Дельфи - сканер ( обертки Ios/Android , которые есть в продаже) - дает только Да/Нет.. 

вот тут попытался описать проблему

39 минут назад, Евгений Корепов сказал:

для доступа к файлам приложения вам нужно взломать устройство

например к Загрузкам (TPath.GetSharedDownloadsPath) не надо ничего ломать..

а вот TPath.GetDocumentsPath - это Android/data/AppleId/files -файловый менеджер открывает но там у меня  пусто - потому что ничего нет? или потому что нет Рут?

или этот путь TPath.GetDocumentsPath - как раз вообще не виден без Рут?

по докВики TPath.GetDocumentsPath 

Android /data/data/<application ID>/files

 

такой папки data/ не вижу, есть Andriod/data/ - или это разное.. 

Изменено пользователем Сергей Сергеев
+
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...