我的应用程序使用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;
    }
}


这是两个相关的函数调用。非常感谢您的帮助。谢谢。

最佳答案

使用不推荐使用的API时,您可以将IDE指向不推荐使用的功能,以获取更多帮助,并且在大多数情况下,不推荐使用将被解释,而不推荐使用的类中将提及您应该使用的类。

您专门使用了com.codename1.codescan.CodeScanner,它是旧的不再可用的实现。您应该使用了不建议使用的com.codename1.ext.codescan.CodeScanner,它应该可以正常工作。仅在安装并刷新cn1lib时,它才会在那里。

10-04 23:41