【问题标题】:Generate QR code in Android that handles Intent在Android中生成处理Intent的二维码
【发布时间】:2020-01-09 07:16:16
【问题描述】:

我想实现一项功能,使我能够扫描QR-code 并打开相关活动。 现在我有 Recycleview 和随机数量的项目,所以我处理项目的 onclick 并使用代码打开 Details Activity -

    public void onOrderItemClick(View itemView) {
    Bundle bundle = new Bundle();
    bundle.putParcelable(ORDER_DATA_KEY, order);
    OrderDetailsActivity.launch(itemView.getContext(), bundle);
}

现在从项目的 Onclick 获取上下文非常简单 - 因为我需要上下文和 BUndle 来启动活动

    public static void launch(Context context, Bundle orderData) {
    Intent intent = new Intent(context, OrderDetailsActivity.class);
    intent.putExtras(orderData);
    context.startActivity(intent);
}

如何生成相关二维码,这样我就可以直接进入相应的活动,甚至无需点击回收视图中的项目? 非常感谢任何帮助。

【问题讨论】:

  • 亲爱的投票者,如果你说清楚你发现了什么问题,我将不胜感激?我只是想要一个路径/方法
  • 请纠正我,您正在尝试实现一个功能,即当扫描特定的二维码时,您需要启动特定的活动。对?此外,这些二维码印在纸上
  • 使用此功能,您希望用户只需扫描二维码即可轻松启动活动,之后,应用程序将根据扫描的输入执行活动。对吗?
  • 是的,因为在回收站视图中可以有多个项目,因此用户必须滚动浏览,可以为每个项目生成一个 qr,扫描它会打开带有数据的活动特定的 itemview
  • @AtishAgrawal 问题是项目视图是动态的,下一个活动是固定的,但是基于项目点击 recyclerview 的动态随机数据

标签: android mvvm android-recyclerview


【解决方案1】:

你可以试试这个逻辑,根据自己的需要修改。

步骤:

  1. 最初为每个项目生成 QR 码。二维码以图像格式存储一组数据。因此,您可以按照特定模式设计自己的数据,例如

    初始(样本原始数据)

    • App-Name-Item-Id-1
    • App-Name-Item-Id-2
    • App-Name-Item-Id-3
    • App-Name-Item-Id-4

    (1,2,3,4 是唯一的项目 ID)

    如果您愿意,您可以对这些数据进行加密,这样其他 QR 码扫描仪就无法读取机密信息。您可以使用任何加密算法

    加密(随机示例)

    • a3GErWv9exn0dOexUBV07GNM1IS5W5Rj
    • CkOdE2ZQlakJzfg9nhNxBqqa917Cdz7K
    • 78d2Z55QTCpciHr3rFMmtRN3E0HRdHgx
    • RZnZF4wb3WPGuI0C3FjeXf8hCFyDZbiE
  2. 创建一个简单的活动,它有一个按钮扫描 QR。您可以使用任何开源库来扫描 QR 中的数据。

  3. 当扫描二维码时,你会得到这种加密数据,显然是因为你将它嵌入到二维码本身中。

  4. 验证二维码

  5. 使用相同的加密算法解密数据并使用任何常见的逻辑方式进行验证,因为它应该是一个模式 (App-Name-Item-Id-[0-9])

    李>
  6. 验证后,您可以轻松地从中获取最后一个数字部分。拥有它后,您可以获取与此唯一 ID 关联的数据(订单对象),就像您必须在 ItemClickListener 中或在创建适配器时所做的那样

  7. 最后,像现在这样启动活动

有了这个,我想你将能够完美地做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多