小编Tah*_*eri的帖子

恩智浦有Java卡吗?

为什么在恩智浦网站上没有关于"JCOP"或J2A040和j3d081这样的术语的搜索结果?我想开始Java Card开发并在市场上找到名为的Java Card

  • JCOP21-72
  • 基于J2A040 NXP JAVA的智能卡,40k EEPROM
  • jcop31
  • jcop41
  • ...

但恩智浦网站上的条款是: - SmartMX,MIFARE DESFire等,或 - P5CC021,P5CC040,P5CC073,P5CC080,P5CC144

为什么市场和制造商使用这些不同的术语?


更新:

  1. 如果我购买SmartMX它是否附带操作系统?恩智浦为操作系统或供应商编程?我有能力自己做吗?

  2. 我在哪里可以找到每个JCOP OS的详细规范?

smartcard javacard mifare contactless-smartcard jcop

6
推荐指数
2
解决办法
6292
查看次数

使用JNI从c ++调用java方法

我正在尝试在JAVA中为特定的usb设备包装一个c ++库.该库支持回调函数,以通知应用程序有关USB设备与PC的连接和分离.

回调函数必须具有如下特定格式:

DWORD callbackFunction(void *params);
Run Code Online (Sandbox Code Playgroud)

所以我在JNI dll中实现了这样的函数,并希望在调用此函数时调用Java wapper中的函数.

问题是JNIENV应该用什么来调用GetObjectClass,GetMethodID和CallVoidMethod?


这是我初始化我的DLL的方式."Set(AttachDetach)Callback"方法接受一个回调函数(第一个参数)和一个void*参数(secondparameter),它将在检测到模块附加/分离时传递给该函数.

JNIEXPORT void JNICALL Java_MyPackage_MyClass_InitializeDLL
(JNIEnv *env, jobject obj, jobject callback)
{
      // Storing callback object in global variable.
    callBackObj = callback;

    env->GetJavaVM(&jvm);

    MyInstance = new MyClass();
    MyInstance ->SetAttachCallback(AttachCallBack, &callBackObj);
    MyInstance ->SetDetachCallback(DetachCallBack, &callBackObj);

      // Testing!
    jclass callBackCls = env->FindClass("MyPackage/MyClassCallBacks");
    jmethodID mid = env->GetMethodID(callBackCls, "attach", "(B)V");
    if (!mid)
        return ; /* method not found */
      //This call here works well
    env->CallVoidMethod(callBackObj, mid, 5);
}
Run Code Online (Sandbox Code Playgroud)

然后我在DLL中为USB设备设置了一个回调函数,当我连接设备时它被成功调用.

我在USB设备上附加回调的代码如下:

DWORD CALLBACK AttachCallBack(CallbackParams* params)
{ …
Run Code Online (Sandbox Code Playgroud)

c++ java methods java-native-interface

3
推荐指数
1
解决办法
8093
查看次数