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

05.11.19

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Получение AndroidID в мобильном приложении:
.7z 8,53Mb
21
21 Скачать (1 SM) Купить за 1 850 руб.

Привет сообщество! На одном из проектов у меня встала задача организовать связку 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С v8.3 1С:Конвертация данных Платные (руб)

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

13200 руб.

27.12.2021    38279    108    161    

202

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

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

3000 руб.

03.12.2018    59357    193    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97370    589    189    

323

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

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

3450 руб.

28.04.2023    9517    15    0    

9

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4683    1    0    

6

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1240    6    informa1555    1    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. WKBAPKA 215 06.11.19 10:33 Сейчас в теме
а как получаете разрешение?
2. WKBAPKA 215 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 225 07.11.19 08:02 Сейчас в теме
(2)
хорошо, что я не стал изучать мобильную платформу, зачем мне эти приколы )

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

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

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

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

в обычной платформе таких приколов еще больше или вовсе нерешаемы, например, если пытаться писать для далёких друг от друга версий платформ.
3. sam441 225 07.11.19 07:55 Сейчас в теме
код получения ID в Андроид с учетом разрешений

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

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
должно быть по любому в манифесте
7. sam441 225 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. kild 92 29.09.21 02:42 Сейчас в теме
(11)
чтобы в манифесте было прописано разрешение на определенный взаимодействия с системой

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