适用于 Android 的 card.io Mono (Xamarin Studio)

2024-01-08

有没有人成功创建了一个他们愿意分享的card.io包装器,可以在Android应用程序的Mono中使用,或者有人可以阐明我做错了什么吗?

  1. 创建一个新的Android Java 绑定库 Project
  2. 添加 .jar 和 .so 文件卡.io SDK 3.0.3 https://www.card.io/download/card.io-android-sdk-3.0.3.zip,一定要使用现有的文件夹结构
  3. 将以下内容添加到 Transforms/EnumMethods.xml 以解决编译器错误:

    <mapping jni-class="io/card/payment/CardIOActivity">
        <method jni-name="onActivityResult" parameter="p1" clr-enum-type="Android.App.Result" />
    </mapping>
    
  4. 在我的主应用程序中添加对上述库的引用

一切都编译完毕,我可以访问 card.io 类:

using IO.Card.Payment;

private void WireupScanCardButton()
{
    Log.Debug(this.GetType().Name, "WireupScanCardButton");

    this.ScanCardButton.Click += delegate 
    {
        Log.Debug(this.GetType().Name, "ScanCard.Click");

        var intent = new Intent(this, typeof(CardIOActivity));

        // Required for authentication with card.io
        intent.PutExtra(CardIOActivity.ExtraAppToken, "<MY PRIVATE TOKEN HERE>");

        // Customize these values to suit your needs.
        intent.PutExtra(CardIOActivity.ExtraNoCamera, false);
        intent.PutExtra(CardIOActivity.ExtraSuppressManualEntry, true);
        intent.PutExtra(CardIOActivity.ExtraRequireExpiry, false);
        intent.PutExtra(CardIOActivity.ExtraRequireCvv, false);
        intent.PutExtra(CardIOActivity.ExtraRequireZip, false);

        // Run the Activity
        this.StartActivityForResult(intent, 0);            
    };
}

但是,我总是遇到以下错误:

该设备无法使用摄像头读取卡号

NOTES:

  • 我尝试过在几种不同的物理设备上运行
  • card.io.jar 文件的构建操作为:EmbeddedJar
  • .so 文件的构建操作为:EmbeddedNativeLibrary
  • 我已经明确设置了Abi对于项目中的每个 .so 文件项目组

我对 Android/Xamarin 非常陌生,所以花更多的时间研究而不是编码。

.so 文件似乎不在 .apk 文件中

Edit:

.so 文件似乎确实被编译器选中了。 编译后,如果我检查对象/发布/文件夹有一个子文件夹本机库导入根据支持的 Abi 类型,在适当的子文件夹中包含 .so 文件。

但是,.so 文件仍然不会出现在最终的 .apk 文件中。

日志输出:

04-18 08:12:20.462 D/ActivityAddPaymentSource( 5824): ScanCard.Click
04-18 08:12:20.472 E/ActivityManager(  191): exception bw.write()java.io.IOException: Transport endpoint is not connected
04-18 08:12:20.472 I/ActivityManager(  191): Starting: Intent { cmp=com.onetab.android/io.card.payment.CardIOActivity (has extras) } from pid 5824
04-18 08:12:20.472 D/PowerManagerService(  191): acquireWakeLock flags=0x1 tag=ActivityManager-Launch
04-18 08:12:20.492 D/ActivityAddPaymentSource( 5824): OnPause
04-18 08:12:20.492 E/Sensors (  191): GsSensor: line +83 ~~~handle===0~~en==1~~!n
04-18 08:12:20.502 E/Sensors (  191): GsSensor::setDelay: line +113 ~~~handle===0~~ns==1553152~~!n
04-18 08:12:20.502 E/Sensors (  191): GsSensor::setDelay: line +113 ~~~handle===0~~ns==-2135896001~~!n
04-18 08:12:20.542 W/card.io ( 5824): cardioScanErrorNoDeviceSupport: This device cannot use the camera to read card numbers.
04-18 08:12:20.572 E/ActivityManager(  191): exception bw.write()java.io.IOException: Transport endpoint is not connected
04-18 08:12:20.572 D/PowerManagerService(  191): acquireWakeLock flags=0x1 tag=ActivityManager-Launch
04-18 08:12:20.582 E/Sensors (  191): GsSensor: line +83 ~~~handle===0~~en==0~~!n
04-18 08:12:20.622 D/ActivityAddPaymentSource( 5824): OnResume

thanks


Android logcat 应该显示更具体的错误消息,但此问题是由于缺少本机库造成的。 (对于普通的 Android 项目,这些项目位于/libs目录,具有特定于体系结构的子目录。)

这些是.so.apk 中缺少您提到的文件。它们包含所有图像处理逻辑,因此如果它们不存在,card.io 就无法扫描。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 Android 的 card.io Mono (Xamarin Studio) 的相关文章

随机推荐

  • 将电源计划更改为高性能

    如何将本地计算机上的电源计划更改为高性能 并更改选项 之后关闭显示 我想设置为从不 我找到了远程计算机的所有示例 您可以通过调用来做到这一点activate方法中的Win32 PowerPlan class powerPlan Get Wm
  • 如何获取 Django 视图集中的 API 参数?

    我正在构建一个公开 REST API 的 Django 应用程序 用户可以通过该 API 查询我的应用程序的模型 我正在按照说明进行操作here http www django rest framework org tutorial qui
  • 在 CDI 实现项目中包含空 beans.xml 的目的是什么?

    我在用weld CDI 的 RI 作为我的 JSF EJB JPA Web 应用程序中的依赖项注入组件 我看到在我的项目中我们有空的 beans xmlMETA INF beans xml in ejb jar and WEB INF be
  • 使用 JAX-RS 和 Jackson 将 JPA 实体转换为 REST 表示的最佳方法

    我正在寻找一种将一些 JPA 实体导出到 REST API 的方法 但不是每次我想根据入口点共享一些特定字段时都发送整个实体 这是一个小例子 假设我们有一个Author具有很少字段的类 Entity public class Author
  • YouTube iframe api 未触发 onYouTubeIframeAPIReady

    我已经与 youtube iframe api 斗争了一段时间了 不知怎的方法onYouTubeIframeAPIReady并不总是被触发 从症状来看 似乎是负载问题 检查器中没有显示任何错误 这是我的代码 HTML div div
  • Emscripten 找不到 cmake 的路径

    我已经将说明仔细阅读了好几遍 https kripken github io emscripten site docs getting started downloads html 查了无数论坛 还是无法解决这个问题 我正在运行 Windo
  • 是否可以用现有图中的常量替换占位符?

    我有一张经过训练的模型的冻结图 它有一个tf placeholder我总是向其提供相同的价值 我想知道是否可以将其替换为tf constant反而 如果是这样的话 任何例子将不胜感激 编辑 这是代码的样子 以帮助可视化问题 我正在使用 由其
  • WCF:从另一方收到不安全或安全错误的错误

    我创建了一项具有 aspnet 角色和安全性的 WCF 服务 当我在一个网站上使用它并尝试检查是否使用正确的用户名和密码时 它工作得很好 但是如果用户名和密码不正确 它会给我一个错误 从对方收到不安全或不正确安全的故障 派对 有关错误代码和
  • 从终端构建、部署和运行 iphone 模拟器

    我是 mac 和 xcode 的新手 请告诉我 iphone xcodeproject 在 xcode IDE 之外执行以下任务的过程 使用 xcodebuild 命令构建完成 在模拟器中部署 在模拟器中运行 如何使用 ant Apples
  • 默认参数的词法声明问题[重复]

    这个问题在这里已经有答案了 我在定义一些时遇到一些问题功能声明后class 我用的是默认的params之前在声明函数时 但我不知道是否也可以使用函数或类作为默认参数 我的代码是这样的 const Matrix class some code
  • Jquery .on 与双击事件

    为什么这会起作用 document on dblclick areaA tr has td function e code here 这并不 areaA tr has td on dblclick function e Code here
  • 为什么匿名类中只能访问最终变量?

    a只能在这里最终决定 为什么 我怎样才能重新分配a in onClick 方法而不将其保留为私有成员 private void f Button b final int a b addClickHandler new ClickHandle
  • 为什么缺少 object.__getattr__ ?

    为什么object似乎没有 getattr 方法 它定义了两者 setattr and delattr 这三个都不需要吗 gt gt gt object setattr
  • CNContact 标识符中的“:ABPerson”字符串是什么?

    我的 iOS 应用程序会时不时地检查联系人并将新联系人导入到自己的数据库中 我检查了该联系人 它已经存在identifier字段 通常由 UUID 填充 CNContactStore store CNContactStore new sto
  • 关闭 Tkinter 后运行 wxPython

    我们有两个应用程序 一个使用 Tkinter 界面开发 另一个使用 wxPython 构建 两者都相当复杂 运行完 Tkinter 应用程序后 我希望在选择 Tkinter 应用程序中的按钮后运行 wxPython 应用程序 是否可以切换事
  • 在 PHP 中将段落分解为句子

    我一直在使用 explode mystring 将段落拆分成句子 然而 这不包括用不同标点符号结束的句子 例如 有没有办法使用数组而不是单个字符作为分隔符 或者还有另一种使用各种标点符号进行拆分的巧妙方法吗 I tried explode
  • 使用阻塞 IO 的多线程会损坏 Java 中的文件

    AIM 使用 Java 中的阻塞 IO 构建多线程应用程序来下载文件 请不要建议我使用非阻塞 IO 我被告知要使用这个 Issue 我的代码在下载服务器上托管的文件的客户端计算机上运行良好 但是 问题是我的服务器使用多个线程播种文件 在所有
  • ViewBag、ViewData、TempData、Session - 如何以及何时使用它们?

    ViewData 和 ViewBag 允许您访问视图中从控制器传递的任何数据 这两者之间的主要区别在于访问数据的方式 在 ViewBag 中 您使用字符串作为键来访问数据 ViewBag numbers 在 ViewData 中 您使用属性
  • 服务和广播接收器之间的区别

    我试图了解服务和广播接收器之间的区别是什么 在我看来 他们也可以做同样的事情 例如我有一个应用程序 App1 提供名为 ToastHelloWorld 的服务 该服务仅创建一个 Toast 和 stopSelf 我使用带有操作名称的意图过滤
  • 适用于 Android 的 card.io Mono (Xamarin Studio)

    有没有人成功创建了一个他们愿意分享的card io包装器 可以在Android应用程序的Mono中使用 或者有人可以阐明我做错了什么吗 创建一个新的Android Java 绑定库 Project 添加 jar 和 so 文件卡 io SD