Как узнать, что штрих-код был отсканирован?

У меня есть этот метод для создания растрового изображения штрих-кода:

public static Bitmap encodeToQrCode(String text, int width, int height) {
    QRCodeWriter writer = new QRCodeWriter();
    BitMatrix matrix = null;
    try {
        matrix = writer.encode(text, BarcodeFormat.QR_CODE, 400, 400);
    } catch (WriterException ex) {
        ex.printStackTrace();
    }
    Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
    for (int x = 0; x < width; x++) {
        for (int y = 0; y < height - 1; y++) {
            bmp.setPixel(x, y, matrix.get(x, y) ? Color.BLACK : Color.WHITE);
        }
    }
    return bmp;
}

Есть ли способ узнать, что штрих-код был отсканирован? Я использую zxing.


person user3232446    schedule 17.10.2016    source источник
comment
Либо я не понимаю, чего вы хотите, либо я должен спросить вас: серьезно? Как должно происходить это волшебство? Или вы пытаетесь реализовать какую-то функцию сканирования и хотите знать, когда zxing что-то декодирует? В таком случае: как вы думаете, почему код, который вы используете для создания QR-кода, должен иметь отношение к вопросу? Не думаете ли вы, что код, который вы используете для сканирования штрих-кода, не будет уместным в этом случае?   -  person Thorsten Dittmar    schedule 17.10.2016
comment
почему это должно быть не серьезно? я просто спрашиваю, есть способ или нет? если вы не понимаете, чего я хочу, я могу вам объяснить: когда пользователь сканирует штрих-код, который я показал в приложении не в печатной форме или около того, я спросил, есть ли способ узнать, что пользователь отсканировал штрих-код.   -  person user3232446    schedule 17.10.2016
comment
Нет, ваш вопрос: Вот, я создаю растровое изображение с qr-кодом, как мне узнать, было ли оно отсканировано? Это то же самое, что: Вот, я сделал фото и распечатал его. Как я узнаю, что это кто-то смотрел? Если вы хотите знать, как сканировать штрих-код/2D-код, совершенно не имеет значения, как вы создали код. Вам нужно показать нам код, который вы используете для сканирования кода. И нужно задать правильный вопрос.   -  person Thorsten Dittmar    schedule 17.10.2016
comment
Да я понимаю, что вы имеете в виду. Я никогда не использовал yxing, я думал, что, возможно, у zxing есть эта функция, чтобы узнать, что штрих-код был отсканирован в приложении не в оригинальной форме. Проблема в том, что пользователь может использовать любой сканер штрих-кода для сканирования штрих-кода, поэтому у меня нет контроля над кодом для сканирования штрих-кода.   -  person user3232446    schedule 17.10.2016
comment
Ага, так вы хотите отобразить штрих-код, а затем выполнить какое-то действие, если какой-то другой пользователь с другим приложением отсканировал код? Это невозможно.   -  person Thorsten Dittmar    schedule 17.10.2016
comment
а, хорошо, спасибо, это ответ, который я искал :)   -  person user3232446    schedule 17.10.2016
comment
Я собираюсь написать это как ответ тогда.   -  person Thorsten Dittmar    schedule 17.10.2016
comment
Если qr хранит URL-адрес, сервер может принять вызов и сообщить вам, что qr был прочитан и вызван URL-адрес, но невозможно определить, был ли qr отсканирован без вызова сервера.   -  person Nanoc    schedule 17.10.2016
comment
да, код qr хранит URL-адрес. но я хотел бы знать это, когда код просто сканируется, а не когда открывается URL-адрес! как сказал #Торстен К сожалению, это невозможно   -  person user3232446    schedule 17.10.2016


Ответы (1)


Если я вас правильно понял, вы ищете способ

  1. Создайте растровое изображение, содержащее QR-код
  2. Отобразите это растровое изображение на своем устройстве
  3. Обнаружение, когда другое устройство, не использующее ваше программное обеспечение, сканирует этот код

Это невозможно. Растровое изображение QR-кода — это просто растровое изображение, отображаемое вашим приложением. А приложение для сканирования штрих-кода просто делает снимок вашего дисплея и пытается найти шаблоны в этом растровом изображении.

person Thorsten Dittmar    schedule 17.10.2016