Получение AndroidID в мобильном приложении

05.11.19

Разработка - Мобильная разработка

Получаем Android DeviceID в мобильном приложении/клиенте, используя стороннее приложение.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Получение AndroidID в мобильном приложении:
.7z 8,53Mb
22 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Привет сообщество! На одном из проектов у меня встала задача организовать связку 1 пользователь = 1 мобильное устройство (под управлением Android), т.е. запретить вход с разных устройств под одним пользователем. Логично, что я решил использовать AndroidID в качестве идентификатора, однако быстрый поиск в гугле меня озадачил, оказалось, что на текущий момент штатными средствами мобильной платформы его не получить. На глаза попались отличные статьи от Дмитрия Васильева (за что ему огромный респект, статьи раз, два и три), где очень подробно описано как взаимодействовать со сторонними приложениями через Intent, поэтому расписывать код не буду, смотрите исходники). Я перебрал добрый десяток приложений в маркете от самых простых до более навороченных, но так и не смог найти приложение, которое бы поддерживало передачу значения в Intent. Что же придется писать свое приложение, по сути это мое первое приложение на Android, и оно максимально простое, но свою задачу оно выполняет, определяет, а главное возвращает в 1С значение.

Главный экран приложения (для первоначального занесения идентификатора в 1С)

Код в 1С:

Функция ПолучитьIDУстройства() Экспорт

	IDУстройства = Неопределено;
	
	#Если МобильныйКлиент ИЛИ МобильноеПриложение Тогда
		ЗапускПриложения = Новый ЗапускПриложенияМобильногоУстройства();
		Если ЗапускПриложения.ПоддерживаетсяЗапуск() Тогда
			ЗапускПриложения.Действие = "com.android.tinydeviceid.action.getDeviceID";
			ЗапускПриложения.Запустить(Истина);
			Для Каждого КлючЗначение Из ЗапускПриложения.ДополнительныеДанные Цикл
				Если КлючЗначение.Ключ = "DeviceID" Тогда
					IDУстройства = КлючЗначение.Значение;
					Прервать;
				КонецЕсли;	
			КонецЦикла;
		КонецЕсли;
	#КонецЕсли
	
	Возврат IDУстройства;

КонецФункции // ПолучитьIDУстройства()

Ну и конечный результат:

В архиве само приложение (apk) и исходники, также есть на гитхабе (AntSidorov)

Надеюсь сэкономлю кому-нибудь немного времени, всем успехов!

Вступайте в нашу телеграмм-группу Инфостарт

Мобильная платформа мобильный клиент android device id

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3050 руб.

03.12.2018    71217    243    106    

189

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически. Решение предназначено для считывания штрихкодов, а не для их создания и печати.

3050 руб.

22.04.2019    122046    723    207    

383

Мобильная разработка 1С:Предприятие 8 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

"МРМ:Маркировка" для работы с конфигурациями 1С - готовое решение, позволяющее быстро автоматизировать работу учетной системы 1С на ордерном и безордерном складе при работе как с товарами, подлежащими обязательной маркировке, так и с товарами, учет которых построен на базе линейных штрих-кодов. Решение поддерживает большинство распространенных складских документов, необходимых для работы кладовщику на терминале сбора данных. Для начинающих пользователей имеется подробная инструкция по работе с приложением в разрезе видов документов.

19000 руб.

24.06.2025    3448    26    0    

4

Мобильная разработка Мессенджеры и боты 1С:Предприятие 8 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13420 руб.

27.12.2021    52888    130    182    

228

Мобильная разработка Программист 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Эта подключаемая обработка для любой конфигурации 1С, позволяет отправить любой объект (и рекуррентно связанные с ним объекты) на устройства c NodaLogic, где они будут полнофункциональны и доступны офлайн, по ним можно вести переписку как со стороны чата в NodaLogic, так и со стороны 1С, заполнять данные и загрузить в 1С по мере надобности. Т.е. обработка содержит генератор UI/UX интерфейса NodaLogic и создает объекты для обмена. При этом не надо ни разбираться в NodaLogic вообще, ни иметь базу/сервер/решение на стороне NL – только учетка и мобильное устройство, а со стороны 1С достаточно галочками отметить, какие поля должны быть на формах. Все данные хранятся в ХранилищеОбщихНастроек, поэтому никакого расширения не нужно, сервера со стороны 1С для связи с устройствами тоже не нужно. Тестировалось на 1С:Предприятие 8.3 (8.3.27.1326), 1С:Комплексная автоматизация 2 (2.4.8.63)

1 стартмани

12.05.2026    811    5    informa1555    1    

13

Мобильная разработка Программист Бесплатно (free)

Мне нужен был высокопроизводительный язык для фронт-сайда, я его сделал, а потом подумал, а что, если сделать 1С-синтаксис? Вот что из этого вышло. Продолжение статьи https://infostart.ru/1c/articles/2614496/

12.03.2026    1801    informa1555    11    

14

Мобильная разработка Программист 1С 8.3 1С:Комплексная автоматизация 2.х 1С:КА Управленческий учет Абонемент ($m)

В этой статье простейший документ - ориентированный пример складского учета на клиент-серверной платформе NodaLogic с автономными мобильными рабочими местами. Это чисто скелетный пример как можно вынести часть учета во внешний контур. И расширение - модуль связи с 1С. Тестировалось на платформе 1С:Предприятие 8.3 (8.3.27.1326), 1С:Комплексная автоматизация 2 (2.4.8.63).

1 стартмани

13.02.2026    2507    informa1555    5    

25
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. WKBAPKA 216 06.11.19 10:33 Сейчас в теме
а как получаете разрешение?
2. WKBAPKA 216 06.11.19 10:37 Сейчас в теме
public static final String getDeviceID(Context cnx) {
        String IMEINumber = "You don't permission to access";
        if (ActivityCompat.checkSelfPermission(cnx, android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
            TelephonyManager telephonyMgr = (TelephonyManager) cnx.getSystemService(TELEPHONY_SERVICE);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                IMEINumber = telephonyMgr.getImei();
            } else {
                IMEINumber = telephonyMgr.getDeviceId();
            }
        }

        return IMEINumber;
    }
Показать


код получения ID в Андроид с учетом разрешений
хорошо, что я не стал изучать мобильную платформу, зачем мне эти приколы )
4. sam441 247 07.11.19 08:02 Сейчас в теме
(2)
хорошо, что я не стал изучать мобильную платформу, зачем мне эти приколы )

я целенаправленно тоже не собирался, но появилась необходимость и пришлось поизучать) и мобильный клиент оставил достаточно положительное впечатление
6. WKBAPKA 216 07.11.19 08:43 Сейчас в теме
(4) для того что бы получить IMEI нужно извращятся :)
1С должна быть программой для учета, Андроид - операционной системой для мобильных устройств... лучше бы они выпустили свой SDK, потому как реализовывать некоторые интерфейсные вещи на чистом андроиде, трудозатратно.
8. sam441 247 07.11.19 08:51 Сейчас в теме
(6)
для того что бы получить IMEI нужно извращятся :)

насчет IMEI не в курсе, я его отмел т.к. насколько я понял в 2-х симочных аппаратах их 2, не буду утверждать, но я понял так
12. OneScan 109 29.09.21 02:36 Сейчас в теме
(2)
код получения ID в Андроид с учетом разрешений

у вас в коде нет получения Android ID, а попытка получения imei. Любые запросы к персональным данным устройства требуют подтверждения со стороны пользователя и с каждой версии android правила безопасности ужесточаются.
Android ID с 8 версии - уникален для каждого установленного приложения, а не только для устройства. Всегда доступен без пермишнов
val androidID = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)

хорошо, что я не стал изучать мобильную платформу, зачем мне эти приколы )

в обычной платформе таких приколов еще больше или вовсе нерешаемы, например, если пытаться писать для далёких друг от друга версий платформ.
14. GonziK_KIV 03.02.25 11:53 Сейчас в теме
(2) А где это прописывать? У меня код согласно статье не работает. В цикл не заходит
3. sam441 247 07.11.19 07:55 Сейчас в теме
код получения ID в Андроид с учетом разрешений

Да вроде никаких дополнительных разрешений не нужно, я использовал такой код:
import android.provider.Settings;
...
String ANDROID_ID = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);
5. WKBAPKA 216 07.11.19 08:38 Сейчас в теме
(3) а как же это ?

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
должно быть по любому в манифесте
7. sam441 247 07.11.19 08:49 Сейчас в теме
(5)
должно быть по любому в манифесте

у меня никаких дополнительных разрешений нет, вот полный листинг манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.tinydeviceid">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".PrivateActivity">
            <intent-filter>
                <action android:name="com.android.tinydeviceid.action.getDeviceID" />
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Показать
11. memb3r 09.12.19 14:17 Сейчас в теме
(5)
(7) Начиная с версии Android 6.0 (API level 23) и выше требуется, чтобы в манифесте было прописано разрешение на определенный взаимодействия с системой. Как правильно написал WKBAPKA - нужно сделать проверку, если API >= 23, тогда сначала запрашивать разрешение у пользователя, в другом случае сразу получать идентификатор.

https://developer.android.com/training/permissions/requesting
13. OneScan 109 29.09.21 02:42 Сейчас в теме
(11)
чтобы в манифесте было прописано разрешение на определенный взаимодействия с системой

Android ID не входит в перечень "определенный взаимодействия с системой" и не требует разрешений.
По вашей ссылке написано, что с Android 6.0 для опасных действий нужно запрашивать разрешения у пользователя.
9. ORlenOK22 12.11.19 17:41 Сейчас в теме
Как работать с архивом?
10. sam441 247 13.11.19 12:41 Сейчас в теме
(9)
В архиве apk приложение ставите на свой телефон, в 1С пишите функцию (пример в статье), публикуете БД и подключаетесь к БД мобильным клиентом.
Для отправки сообщения требуется регистрация/авторизация