Java卡片小程序如何使用Shareable接口?
How to use Shareable interface in Java Card applets?
我为我的 java 卡片编写了两个简单的小程序,名为 App1 和 App2 如下:
App1 :
public class App1 extends Applet {
private App1() {
}
public static void install(byte bArray[], short bOffset, byte bLength)
throws ISOException {
new App1().register();
}
public void process(APDU arg0) throws ISOException {
if(selectingApplet()){
return;
}
//I want to call "ThisMethod()" of App2 here
}
}
App2 :
public class App2 extends Applet {
private App2() {
}
public static void install(byte bArray[], short bOffset, byte bLength)
throws ISOException {
new App2().register();
}
public void process(APDU arg0) throws ISOException {
}
public void ThisMethod(){
ISOException.throwIt((short)0x9001);
}
}
正如我在 App1 程序中指出的那样(作为评论)我想在 App1 的 Process
方法中调用 App2 的 ThisMethod
方法。据我所知,我必须实现 Shareable
接口。但我对此有点困惑:
问题:
1- 我应该在两个小程序中都实现这个方法吗?或者我需要在 App1 或 App2 中实现它?
2- 如果 App1 和 App2 在一个包中或在两个单独的包中,它会改变什么吗?
3- 我需要 Shareable
接口来共享数组吗?还是仅仅为了分享方法是强制性的?
不,您只需创建一个扩展 Shareable 的接口,然后您的 app2 必须实现该接口。
没关系
是的,如果你想分享你的数组,你还需要实现Shareable
但是,在您可以使用从其他小程序实例共享的methods/objects 之前,您必须先将您的界面实例存储在App1 中。您可以通过
AID aid = JCSystem.lookupAid({App2 AID byte array}, {offset}, {length}); // provide the instance AID of App2
{yourInterface} app2Instance = ({yourInterface})JCSystem.getAppletShareableInterfaceObject(aid, (byte)0);
然后使用app2Instance
访问共享methods/objects
我为我的 java 卡片编写了两个简单的小程序,名为 App1 和 App2 如下:
App1 :
public class App1 extends Applet {
private App1() {
}
public static void install(byte bArray[], short bOffset, byte bLength)
throws ISOException {
new App1().register();
}
public void process(APDU arg0) throws ISOException {
if(selectingApplet()){
return;
}
//I want to call "ThisMethod()" of App2 here
}
}
App2 :
public class App2 extends Applet {
private App2() {
}
public static void install(byte bArray[], short bOffset, byte bLength)
throws ISOException {
new App2().register();
}
public void process(APDU arg0) throws ISOException {
}
public void ThisMethod(){
ISOException.throwIt((short)0x9001);
}
}
正如我在 App1 程序中指出的那样(作为评论)我想在 App1 的 Process
方法中调用 App2 的 ThisMethod
方法。据我所知,我必须实现 Shareable
接口。但我对此有点困惑:
问题:
1- 我应该在两个小程序中都实现这个方法吗?或者我需要在 App1 或 App2 中实现它?
2- 如果 App1 和 App2 在一个包中或在两个单独的包中,它会改变什么吗?
3- 我需要 Shareable
接口来共享数组吗?还是仅仅为了分享方法是强制性的?
不,您只需创建一个扩展 Shareable 的接口,然后您的 app2 必须实现该接口。
没关系
是的,如果你想分享你的数组,你还需要实现
Shareable
但是,在您可以使用从其他小程序实例共享的methods/objects 之前,您必须先将您的界面实例存储在App1 中。您可以通过
AID aid = JCSystem.lookupAid({App2 AID byte array}, {offset}, {length}); // provide the instance AID of App2
{yourInterface} app2Instance = ({yourInterface})JCSystem.getAppletShareableInterfaceObject(aid, (byte)0);
然后使用app2Instance
访问共享methods/objects