Сканер штрих-кода с кодом 1 не может вернуть значение - PullRequest
2 голосов
/ 08 ноября 2019

Мое приложение возвращает неподдерживаемое использование cn1-codescan.cn1lib. Когда я использую устаревший CodeScanner (com.codename1.codescan. *), Приложение сканера работает, но значение никогда не возвращается. Я тестирую на Samsung Note 4, на случай, если что-то изменится ...

private void scanIt(TextField tfField)
{
    if(CodeScanner.isSupported())
    {
        CodeScanner cs = CodeScanner.getInstance();
        if(cs != null)
        {
            MyScanResult msr = new MyScanResult();
            cs.scanBarCode(msr);
            tfField.setText(msr.scancode);
        }
        else
            tfField.setText("No Instance!");
    }
    else
        tfField.setText("Not Supported!");
}

import com.codename1.ext.codescan.*;

public class MyScanResult implements ScanResult
{
    public String scancode = null;

    public MyScanResult()
    {      
    }

    public void scanCompleted(String contents, String formatName, byte[] rawBytes)
    {
        scancode = contents;
    }

    public void scanCanceled()
    {
        scancode = "Canceled";
    }

    public void scanError(int errorCode, String message)
    {
        scancode = "Error! "+message;
    }            
}

Это два соответствующих вызова функций. Я заранее ценю вашу помощь. Спасибо вам.

1 Ответ

0 голосов
/ 09 ноября 2019

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

Вы специальноиспользуется com.codename1.codescan.CodeScanner, что является старой, более не работающей реализацией. Вы должны были использовать com.codename1.ext.codescan.CodeScanner, который не устарел и должен работать нормально. Он будет там только в том случае, если cn1lib установлен и обновлен.

...