[mobile] Взаимодействие с NFC через мобильную платформу 1С
Разработка - Мобильная разработка
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Материалы, которые использовал для создания приложений:
- Уроки по созданию приложения для взаимодействия с NFC в android studio Вам нужно только повторять за автором и на выходе вы получите функционал по чтению и записи меток.
- Статьи на инфостарте "Мобильное приложение 1С и приложение Java. Совместная работа через Intent. " в них очень подробно расписано, как "подружить" приложения:
Всегда актуально: Курс Дмитрия Шерстобитова на курсах-1с.рф
Функционал, который получилось реализовать:
- Получение состояния (включено/выключено)
- Переход в настройки
- Запись (в тестовой записи текст вшит в приложение на android studio, в обычной записи текст передается из приложения на мобильной платформе 1С)
- Чтение с передачей ID метки и содержимого в приложение на МП 1С. Т.к поддерживается только Ndef то формат передается просто текстом.
- Установка внешнего приложения из приложения на МП 1С.
Приведу пример кода некоторых функций на стороне МП 1С и android studio:
Получение состояния (включено/выключено)
Код в 1С:
&НаКлиенте
Процедура ПолучитьСостояниеNFC()
#Если МобильноеПриложениеКлиент Тогда
НовВз = Новый ЗапускПриложенияМобильногоУстройства();
НовВз.Действие="ru.mp.intent.action.NFCstate";
НовВз.Запустить(Истина);
Для Каждого Стр Из НовВз.ДополнительныеДанные Цикл
Если Стр.Ключ = "state" Тогда
СостояниеNFC = Стр.Значение;
КонецЕсли;
КонецЦикла;
#КонецЕсли
КонецПроцедуры
Код в android studio:
NfcAdapter nfcAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nfc_state);
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
//++ определим состояние NFC Урок 1
String textState = new String();
Boolean StateNfc = false;
if (nfcAdapter != null && nfcAdapter.isEnabled()) {
textState = "NFC Включено";
android.widget.Toast.makeText(this, textState, Toast.LENGTH_SHORT).show();
StateNfc = true;
}else{
textState = "NFC Выключено";
android.widget.Toast.makeText(this, textState, Toast.LENGTH_SHORT).show();
StateNfc = false;
}
//-- определим состояние NFC Урок 1
Intent intent = new Intent();
intent.putExtra("state", StateNfc);
setResult(RESULT_OK, intent);
finish();
}
Переход в настройки
Код в 1С:
&НаКлиенте
Процедура ВключитьОтключитьNFC(Команда)
#Если МобильноеПриложениеКлиент Тогда
НовВз = Новый ЗапускПриложенияМобильногоУстройства();
НовВз.Действие="ru.mp.intent.action.OnOffNFC";
НовВз.Запустить(Истина);
#КонецЕсли
КонецПроцедуры
Код в android studio:
public void ActionNFCSettings(){
if (android.os.Build.VERSION.SDK_INT >= 16) {
startActivity(new Intent(android.provider.Settings.ACTION_NFC_SETTINGS));
} else {
startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}
this.finish();
}
Тестовая запись
@Override
protected void onNewIntent(Intent intent) {
//урок 3
if(intent.hasExtra(NfcAdapter.EXTRA_TAG)) {
//android.widget.Toast.makeText(this, "NFC ТЕГ", Toast.LENGTH_SHORT).show();
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NdefMessage ndefMessage = createNdefMessage("Android studio");
writeNdefMessage(tag,ndefMessage);
setResult(RESULT_OK);
finish();
}
}
Записать
Код в 1С:
&НаКлиенте
Процедура ЗаписатьNFC(Команда)
#Если МобильноеПриложениеКлиент Тогда
НовВз = Новый ЗапускПриложенияМобильногоУстройства();
НовВз.Действие="ru.mp.intent.action.WriteNFC";
НовВз.ДополнительныеДанные.Добавить("textNFC", "Мобильная платформа 1С");
НовВз.Запустить(Истина);
#КонецЕсли
КонецПроцедуры
Код в android studio:
NfcAdapter nfcAdapter;
public static String textNFC;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nfc_write);
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter != null && nfcAdapter.isEnabled()) {
}else{
android.widget.Toast.makeText(this, "NFC Выключено", Toast.LENGTH_SHORT).show();
this.finish();
}
Intent intent = getIntent();
textNFC = intent.getStringExtra("textNFC");
}
@Override
protected void onNewIntent(Intent intent) {
if(intent.hasExtra(NfcAdapter.EXTRA_TAG)) {
//android.widget.Toast.makeText(this, "NFC ТЕГ", Toast.LENGTH_SHORT).show();
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NdefMessage ndefMessage = createNdefMessage(textNFC);
writeNdefMessage(tag,ndefMessage);
setResult(RESULT_OK);
finish();
}
}
Тестировал только на Nexus 5 и на карте, которая поддерживает Ndef (ее хар-ки в изображениях).
Использовалась мобильная платформа 8.3.11, технологическая платформа 8.3.10
Содержимое архива:
1) Два apk:
- приложение на мобильной платформе 1С
- приложение на android stuido
2) Конфигурация приложения 1С и архив проекта на android studio
Другие разработки, которые могут вас заинтересовать:
Вступайте в нашу телеграмм-группу Инфостарт
См. также
3050 руб.
22.04.2019 125049 739 207
2196 руб.
18.01.2017 152752 235 237
06.10.2026 1944 54 aleksandrboldyusov 0
1 стартмани
13.02.2026 4184 informa1555 5
19000 руб.
24.06.2025 4144 26 0