将条形码转换为产品名称

3

我开发了一款应用程序,下周我将进行演示。除了一个小细节外,一切准备就绪:我使用了一个条形码扫描仪,但我只返回它扫描的数字。我希望将此数字转换为产品名称。在寻找解决方案后,我没有找到合适的方法。有谁知道如何完成这个任务吗?


根据条形码号在您的云数据库中创建一个字段,并获取详细信息。 - Aditya
你是在创建条形码还是只是在扫描? - Aditya
我正在使用ZXing库进行扫描。 - J. Joly
我刚刚完成了这个应用程序,所以它应该能够扫描各种产品。 - J. Joly
我的也能工作,但如果你扫描了东西,你得到了什么?一个数字还是一个产品? - J. Joly
显示剩余6条评论
2个回答

1
我完全忘记发布它了,但我找到了一个解决方案。我放置了2个脚本,由于我无法从我的笔记本电脑上进入android studio,因此我无法在这里发布我的最终代码。如果有人真的想看到它,我可以在不久的将来做到这一点。但我的解决方案如下:我有一些网站,您可以在其中输入从扫描代码中获取的数字和从获取命令中获取网站信息,将其放入文件中,并通过定位和拆分有用的内容来使用它们。
import java.io.IOException;
import javax.swing.JOptionPane;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class Main {
    public static void main(final String[] args) throws IOException {
        String inputValue = JOptionPane.showInputDialog("Please input barcode");
        if (inputValue != null && inputValue.length() > 0) {
            String url = "https://www.barcodable.com/ean/" + inputValue;
            Document doc = Jsoup.connect(url).get();
            JOptionPane.showMessageDialog(null, doc.title(), "result", JOptionPane.INFORMATION_MESSAGE);
        }
    }

0

所以你有一个数字,需要一个名称。这意味着你需要在某个地方建立数字和名称之间的映射关系。你没有说出这个映射关系存在于哪里,甚至是否存在。假设它不存在,你可以在你的应用程序中硬编码它,例如:

static final SparseArray<String> map;
static {
  map.put(1, "Foo");
  map.put(103, "Bar");
  map.put(529, "Baz");
}

然后使用它,

String name = map.get(number);

请注意,SparseArray是一种优化稀疏int / string映射的Android类。如果您知道可能数字的边界,还可以使用Map甚至String[]

但是如果产品数量发生变化,那么您每次都必须更新您的APK。从云数据库获取产品详细信息是更好的解决方案。 - Aditya
我想这是关于谁在意的问题。任何查看演示文稿的人会知道或关心映射来自哪里吗?如果不知道,那就做最简单的事情。他并不是在开发产品,而是在上大学课程。 - Jeffrey Blattman
是的,这是可以做到的,但我希望能够从互联网上获取它。低成本,高效率。 - J. Joly
如果您在问题中能够明确指定这些内容,那将会很有帮助。这很简单,只需要将文件放置在某个地方进行分段、下载和解析即可。除非您的目标是使其变得不必要地复杂,否则请务必将其托管在云数据库中。 - Jeffrey Blattman
1
@J.Joly,没有所有条形码的集中式数据库。条形码由制造商分割,他们可以随意分配其ID。没有中央注册表。有些公司试图跟踪,但它们都会按查找或每月费用收费。 - Gabe Sechan
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接