为什么在恩智浦网站上没有关于"JCOP"或J2A040和j3d081这样的术语的搜索结果?我想开始Java Card开发并在市场上找到名为的Java Card
但恩智浦网站上的条款是: - SmartMX,MIFARE DESFire等,或 - P5CC021,P5CC040,P5CC073,P5CC080,P5CC144
为什么市场和制造商使用这些不同的术语?
更新:
如果我购买SmartMX它是否附带操作系统?恩智浦为操作系统或供应商编程?我有能力自己做吗?
我在哪里可以找到每个JCOP OS的详细规范?
我正在尝试在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)