Device key string android что это

Android device ID

Бывает возникает необходимость получить какой-то уникальный идентификатор для Android телефона. Какие могут быть варианты? В данном топике опишу семь известных мне способов сделать это. (Точее, способов будет шесть, а вот седьмой как вариант – это комбинация всех шести предыдущих). Итак.

Android IMEI.
Думаю, Вам известно, что каждый, даже самый старый черно-белый телефон, имеет свой уникальный идентификатор – IMEI (International Mobile Equipment Identity), применяемый по большей степени в GSM сетях. Он устанавливается производителем телефона и хранится в прошивке. Можем его смело использовать в качестве требуемого идентификатора:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String devicIMEI = telephonyManager.getDeviceId();

Для эмулятора всегда возвращается «000000000000000″, для реального телефона что-то наподобие «351256985671943″

Phone Number
Следующим образом можем получить номер телефона:

String phoneNumber = telephonyManager.getLine1Number();

Вернет строку вида: +ХХХХХХХХХХХХ (Х = [0..9])

Примечание: предыдущие два примера требуют указания в манифесте следующего пермишина:
android.permission.READ_PHONE_STATE

Псевдо-уникальный ID
Не все андроид-девайсы могут быть оснащены GSM-модулем, скажем, зато у всех у них есть производитель, который «слепил» устройство из всяких железок. Вот какраз информация об этих железках, собранная вместе, и может послужить в качестве уникального идентификатора (правда возможны и повторения). В некоторых случаях может пригодиться. Сконструируем из этих данных что-то похожее на IMEI телефона (15 знаков):

String pseudoID = «35″ +
Build.BOARD.length()%10 + Build.BRAND.length()%10 +
Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +
Build.DISPLAY.length()%10 + Build.HOST.length()%10 +
Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
Build.TAGS.length()%10 + Build.TYPE.length()%10 +
Build.USER.length()%10;

Android ID
Это еще один ID. Считается ненадежным, так как может в некоторых случаях быть и null. Обратимся к документации:
A 64-bit number (as a hex string) that is randomly generated on the device’s first boot and should remain constant for the lifetime of the device.
Ничего, пригодится:

String androidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

Wi-Fi Mac адрес
В качестве уникального Device Id можно использовать Mac Wi-Fi-адаптера. Для его получения необходимо в манифесте установить права: android.permission.ACCESS_WIFI_STATE

WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
String wifiMac = wifiManager.getConnectionInfo().getMacAddress();

Androif BlueTooth ID
По аналогии с Wi-Fi мак-адресом, может взять и голубозубый мак. (требуются права android.permission.BLUETOOTH и, возможно, включенный адаптер)

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String blueToothMac = bluetoothAdapter.getAddress();

Номер 7
Вариация всех предыдущих методов. Самый простой вариант – получить все вышеописанные идентификаторы, сложить в одну строку и взять md5 хеш от этой строки.

Источник

Device key string android что это

Данная тема является продолжением статьи https://4pda.to/2014/12/12/190359/
Здесь обсуждаем способ создания нативной поддержки для устройств ввода и делимся готовыми решениями.

1. Создание файла с VID и PID
Подключаем наше устройство ввода и запускаем приложение USB Device Info. Нас интересует вкладка Linux, в которой выбираем своё устройство (у меня оно было последним в списке) и ищем значения строчек Vendor ID и Product ID. В моём случае это были 0c45 и 7700 соответственно.

Так же VID и PID можно посмотреть подключив устройство к ПК.

Для Bluetooth устройств:
Узнать эти значения для Bluetooth девайсов можно открыв файл /proc/bus/input/devices.

Копируем любой файл из /system/usr/keylayout на sdcard и переименовываем его в соответствии с полученными данными, для моего джойстика название получилось таким: Vendor_0c45_Product_7700.kl. (Обратите внимание, что регистр букв имеет значение)

Читайте также:  Как удалить иконку с экрана андроид хонор

2. Получение кодов кнопок
Запускаем приложение KeyTest и, вооружившись бумагой и карандашом, начинаем поочерёдно нажимать кнопки на устройстве, записывая цифры, высвечивающиеся после scanCode=. Я записывал коды, располагая их на бумаге, как кнопки на геймпаде.

Из программы можно выйти только по кнопке «Домой».

ВНИМАНИЕ!
Если Геймпад видно в первом шаге, но кейтест не реагирует на нажатия, возможно, у вас отсутствует нужный модуль в ядре — скажите «спасибо» автору прошивки.
Но не отчаивайтесь, есть возможное решение Нативная поддержка для устройств ввода (Пост wm-hater #52134473)

3. Маппинг кнопок
Теперь, когда стали известны коды всех клавиш, необходимо прописать их функции. Тут есть два пути:
а) найти среди имеющихся в Android конфигов устройство, максимально приближенное к вашему, и просто изменить в нём коды кнопок, скопировав содержимое в свой файл;
б) прописать все самому.
Я пошёл по второму пути, ибо мой джойстик имеет только крестовину управления и четыре кнопки. Для начала нужно понять синтаксис файла раскладки, он очень прост:

key код_кнопки действие_кнопки

Но тут возник вопрос: а какие действия кнопок писать в конфиге? За много лет использования различных геймпадов на Android я для себя определил, что самый универсальный конфиг — это раскладка от Sony Xperia Play, она одинаково хорошо ведёт себя как в играх, так и в интерфейсе системы.

Ok Google, key mapping for Xperia Play

Нас интересует третья колонка, но запись действий в ней немного отличается от тех, что были найдены в системе — это не помеха, просто убираем KEYCODE_.

Прописываю свои кнопки (помните листок с карандашными записями? Самое время найти его. ):
. ВНИМАНИЕ .
Нужен текстовый редактор с поддержкой unix кодировки!
Блокнот из состава Windows НЕ подойдет ,
Используйте, к примеру, Notepad++

4. Момент истины
Сохраняем наш файл и копируем его в папку /system/usr/keylayout. Выставляем права -rw -r -r (644). Перезагружаем устройство (сам я этого не делал, просто заблокировал и разблокировал, но для чистоты совести и эксперимента обязан был это написать).

Подключаем наше устройство, и если всё сделали правильно, тут же сможете «крестовиной» перемещаться по меню Android. Кнопка, на которую назначили DPAD_CENTER, будет кнопкой выбора, а BUTTON_B — кнопкой «назад».

Q: Все прописываю верно, но конфиг не цепляется.
А: Если вы пропишете коды действий с ошибкой, например:
key 123 BUTTON_HOME вместо key 123 HOME
то система будет считать этот файл ошибочным.
Самый лучший способ проверить подхватывается ваш kl файл системой или нет — стереть все кейкоды или закомментировать их знаком #:
# key 123 BUTTON_HOME
Если файл подхватился — никакой реакции на кнопки не будет, но в KeyTest все будет отображаться.

Q: Все прописываю верно и без ошибок но все или часть кнопок не работают.
А: Попробуйте прописать scancode в hex формате: Нативная поддержка для устройств ввода (Пост romanctest #69194647)
Q: Дуалшок 4 постоянно отваливается или работает с задержкой.
А: Нативная поддержка для устройств ввода (Пост maxmergov #81264882)

Читайте также:  Самсунг джи 2 кор андроид

Источник

Device key string android что это

Так как подобной темы нет, а информация по данному вопросу разбросана небольшими частями по различным темам форума решил, создать данную тему с общей инструкцией.
Для всех действий необходим root.
Работать будем с файлами расположенными в system\usr\keylayout

Остановимся на файлах, которые необходимо редактировать (это, пожалуй, самый сложный этап):
Имя файла зависит от фирмы производителя, модели и версии прошивки, но как я заметил есть следующая тенденция: до Android 2.3.5 включительно, имя нужного нам файла формировалоcь следующим образом ***-keypad.kl (или ***- kpd.kl), где *** — заводское имя вашей модели.

    Известные мне примеры:
  • Gigabyte Gsmart G1310 — qrd-keypad.kl
  • Gigabyte Gsmart G1355 – msm7627_sku5_keypad.kl
  • LG P500 Optimus One – thunder_keypad.kl
  • LG E405 Optimus L3 Dual — surf_keypad.kl и 7x27a_kp.kl
  • LG E730 Optimus Sol – victor-keypad.kl (touch-keypad.kl)
  • LG GT450 – swift.kl (не уверен, но люди пишут)
  • HTC Hero — heroc-keypad.kl
  • HTC Desire — bravo-keypad.kl
  • HTC Explorer — pico-keypad.kl
  • HTC Desire S — saga-keypad.kl
  • HTC Desire HD — spade-keypad.kl
  • HTC Sensation — pyramid-keypad.kl
  • Samsung Galaxy S I9000 — melfas-touchkey.kl и s3c-keypad.kl
  • SE Live with Walkman — pm8058-keypad.kl и msm_pmic_pwr_key.kl (во втором файле только кнопка питания)
  • Sony Ericsson Xperia X8 – shakira-keypad.kl
  • Sony Ericsson Xperia X10 – es2009ra_keypad.kl
  • Star A2000 / A2000 GPS — MT6516-kpd.kl и QWERTY.kl
    * — планируется наполнение списка с Вашей помощью, если есть замечания указывайте.

Начиная с 4.0.3 всё изменилось, могу отметить, что для HTC вторая часть файла стала touchscreen.
Известные мне примеры:

  • Sony LT22i Xperia P – so34-buttons.kl (3 нижние кнопки), ux500-ske-keypad.kl (боковые кнопки)
  • HTC ONE V — atmel-touchscreen.kl (3 нижние кнопки), primou-keypad.kl (боковые кнопки)
  • HTC Desire S — atmel-touchscreen.kl (4 нижние кнопки), saga-keypad.kl (боковые кнопки)
  • HTC Sensation – cy8c-touchscreen.kl (4 нижние кнопки), pyramid-keypad.kl (боковые кнопки)
  • Samsung i9250 Galaxy Nexus (android 4.2.1), вероятней всего sii9234_rcp.kl
    * — планируется наполнение списка с Вашей помощью, если есть замечания указывайте.

    Файлы кнопок проводной гарнитуры обычно имеют вид:

  • 7k_headset.kl
  • h2w_headset.kl
    • POWER – блокировка/разблокировка
    • HOME – возврат на основной экран
    • MENU – вызов меню
    • BACK — возврат к предыдущему действию
    • SEARCH – вызов поиска
    • VOLUME_DOWN – понижение уровня громкости
    • VOLUME_UP – повышение уровня громкости
    • CALL – вызов Phone.apk (позволяет отвечать на вызов)
    • ENDCALL – завершение звонка
    • CAMERA – вызов Camera.apk
    • FOCUS – автофокус
    • DPAD_CENTER – курсор (касание) по центру
    • DPAD_UP – курсор (касание) вверх*
    • DPAD_DOWN – курсор (касание) вниз*
      * — установка этих значений на кнопки 115 и 114 соответственно позволяет добиться пролистывания текстов или страницы браузера кнопками громкости.
    • DPAD_LEFT – курсор (касание) влево
    • DPAD_RIGHT – курсор (касание) вправо
    • MUTE – выключение звука музыки без остановки трека
    • MEDIA_NEXT – следующий трек
    • MEDIA_PLAY_PAUSE – проигрывать/пауза
    • MEDIA_STOP – остановить трек
    • MEDIA_PREVIOUS – предыдущий трек
    • MEDIA_REWIND — перемотка
    • MEDIA_FAST_FORWARD – ускорить воспроизведение
    • HEADSETHOOK – кнопка гарнитуры – позволяет отвечать на вызовы, класть трубку и управлять плеером
    • GRAVE — ?
    • APP_SWITCH (RECENT_APP) – вызов панели «Недавние» с возможностью переключаться между приложениями (либо вызов диспетчера приложений в зависимости от прошивки.

    Также следует обратить внимание на такие дополнительные параметры как:

  • WAKE
  • WAKE_DROPPED
    Если стоит WAKE то после нажатия в спящем режиме смарт «проснётся» и выполнит действие, а при WAKE_DROPPED просто «проснётся», без передачи кода кнопки на выполнение.
    • Если у вас кастомный recovey (а вероятней всего он у вас такой), то во вкладке advanced можно воспользоваться функцией key test.
    • Программа KeynrTracker. KeynrTracker.apk ( 8.32 КБ )

    Программа Keycode CheckerKeycodeChecker.apk ( 10.3 КБ )

    • Самый простой способ. Заключается в редактировании нужных файлов прямо в папке keylayout, для этого используем ES Проводник (RootExplorer, Total Commander, ну или что-то на свой вкус (я пользуюсь ES Проводником и вам советую)): открываем – меняем требуемые значения – закрываем с сохранением изменений – перезагружаем девайс. При этом в папке keylayout будет создан фаил ****.kl.bak в котором сохранятся первоначальные значение изменённого вами файла. Также можно редактировать копию файла на SD карте или ПК, а затем вставлять с заменой в keylayout.(Проверено)

    Программа Easy Android Tools (EAT). Программа позволяет подключать телефон как через USB кабель так и по WiFi. После подключения и распознания телефона программой в правом окне Вы увидите содержимое внутренней памяти телефона. Переходим в Необходимо system/usr/keylayout, находим нужный фай, редактируем его в EAT Editor (F4), сохраняем изменения, перегружаем смарт и готово. (Программа подразумевает наличие на вашем ПК USB драйверов для вашего устройства (их можно найти на оф сайте программы), и HTC Syns для HTC)
    EAT_1.3.1.RUS.Setup.exe ( 1.78 МБ )

    Для этого метода нам потребуется Android SDK tools, знание точного названия файл который нам надо менять (можно посмотреть через ES Проводник и тд. и. тп.)
    В командной строке переходим в папку с Android SDK tools (у меня это C:\Android), далее выполняем следующее. (Необходимо наличие на вашем ПК USB драйверов для вашего устройства)

    Перегружаем аппарат и готово. Android.zip ( 572.31 КБ )
    (Проверено)

  • Заключается в редактировании файла на ПК, и создание zip архива для прошивки через recovey, пример такого архива для HTC Desire S прилагаю, но тут надо навыки по написанию файла updater-script. Recent_Apps_on_Search_for_Desire_S.zip ( 252.14 КБ )
    (Проверено)
  • ButtonRemapper – позволяет переназначать кнопки, но работает некорректно на многих устройствах особенно с android 4.0.3 и выше. Более разработчиком не поддерживается, Следует отметить, что в теме по этому приложению достаточно много информации по ручному переназначению кнопок.

    ButtonRemapper Galaxy Tab Tab_ButtonRemapper_v1.1.apk ( 67.09 КБ )

    ButtonRemapper Galaxy S ButtonRemapper_Galaxy_S.apk ( 72.76 КБ )

    Headset Button Controller – управление музыкальным проигрывателем и другими функциями телефона с проводной гарнитуры.

    DreamKeys – программа для переназначения кнопок телефона, идея заключается в перехвате команд нажатий и присвоение им других действий, root не нужен (возможна настройка на долгое нажатие).

  • Button Shortcut — Назначение программ на кнопки «Камера» или «Поиск»
  • Сообщение отредактировал dеym — 26.07.19, 16:29

    Источник

    Читайте также:  M active циферблаты для андроид
    Оцените статью