Вы почти наверняка можете справиться с 8 часами в день, если телефоны не используются для чего-то еще. Однако есть много переменных.
Многие старые телефоны требуют другого типа сканирования с использованием бесконечных перезапусков сканера, чтобы правильно сообщить о «видении» периферийного устройства. Это может значительно сократить срок службы батареи.
Если телефоны работают с Marshmallow или более поздней версией, у них есть режим ожидания, который прерывает сканирование. Это можно обойти с помощью AlarmManager, JobService / Dispatcher или WorkManager. Это может значительно сократить срок службы батареи.
Если телефоны работают под управлением Oreo или более поздней версии, им требуется служба переднего плана (постоянное уведомление), чтобы предотвратить автоматическое уничтожение приложения операционной системой для экономии заряда батареи. Приложение также должно быть занесено в белый список от оптимизации батареи, потому что даже с сервисом переднего плана приложение все равно будет убито ОС.
Наконец, сканирование и радиовещания и с использованием служб определения местоположения довольно дорого с точки зрения батареи. Если вы пытаетесь кластеризовать телефоны и угадать их местоположение на основе того, какие другие телефоны находятся поблизости, на каком-то уровне вам все же понадобятся данные о местоположении на телефонах, чтобы выяснить, где они находятся.
Тебе гораздо лучше просто сканировать. Вы можете покрыть имущество вашей компании маяками, где указано местоположение каждого отдельного маяка. Когда телефон «входит в регион» (находится в пределах досягаемости радиомаяка), он должен отправить что-то вашему API, сообщив, какой радиобуй он только что обнаружил. Это скажет вам, в какой комнате / зоне он находится.
Еще одним менее кричащим (и, возможно, менее точным) способом отслеживания всего будет использование IP-адресов точек беспроводного доступа, к которым они подключены. Используйте WorkManager , чтобы периодически обновлять API с помощью уникального идентификатора телефона и IP-адреса точки доступа. Ваш ИТ-отдел должен знать местонахождение каждого из них. Таким образом, вы получаете достаточно хорошее отслеживание и практически не разряжаете батарею.