В моем приложении QR-коды размещаются в фиксированных физических местах, и некоторые пользователи пытаются обойти предполагаемое использование, копируя изображение QR-кода и сканируя его с другой позиции или направления, чем то место, где оно фактически установлено. Хотя я уже проверяю сканирование с помощью местоположения GPS, одного этого недостаточно, поскольку пользователи все равно могут находиться в пределах разрешенного радиуса, но сканировать скопированный QR-код с неправильного физического направления. Чтобы предотвратить это, я хочу проверить направление сканирования QR-кода. Например, если QR-код предназначен для сканирования лицом на север, то пользователь всегда должен сканировать его с северного направления при каждом допустимом сканировании.
Для этого я рассматриваю первое правильное сканирование как эталон и сохраняю информацию о направлении и выравнивании этого сканирования. Затем все последующие сканирования сравниваются с этим эталоном, чтобы убедиться, что пользователь сканирует QR-код в том же физическом направлении. Трудность, с которой я столкнулся, заключается в нормализации этого первого эталонного сканирования, поскольку пользователь может первоначально сканировать QR-код, удерживая телефон в альбомном режиме или в боковой или наклонной ориентации. Если эта неправильная ориентация будет зафиксирована в качестве эталона, она станет базовой линией для всех будущих сканирований, пропуская недействительные сканы. Я ищу надежный способ нормализации или проверки исходного эталонного сканирования, чтобы различия в ориентации (первое сканирование в книжной и альбомной ориентации или вбок) не ставили под угрозу логику проверки на основе направления.
Подробнее здесь: https://stackoverflow.com/questions/798 ... first-scan