我需要用智能手机上的SIM卡交换APDU。

我使用运营商的(Rogers)SIM卡做了一个小的测试功能来尝试此操作。

SmartCardReader[] allReaders = SmartCardReaderFactory.getInstalledReaders();
for( int readerIndex = 0; readerIndex < allReaders.length; ++readerIndex) {
    try {
        SmartCardReaderSession session = allReaders[readerIndex].openSession();
    }
    catch( Exception e ) {
        System.err.println( e.toString() );
    }
}


但是我一直在收到SmartCardNoCardPresentException异常。

显然,存在SIM卡(我可以用它拨打电话),但是isSmartCardPresent()返回false。

请注意,我没有在模拟器上运行它,它只能在真实手机上“运行”。我将Torch 9810用作目标。

另请注意,我已经签署了我的申请。

任何提示/建议,将不胜感激。

最佳答案

我认为黑莓智能卡读卡器概念存在误解。

您假设sim卡是智能卡,并且已安装的sim卡必须被识别为智能卡。但这不是事实。

在此处阅读更多信息:Smart card reader for BlackBerry

关于java - 调用SmartCardReader.openSession()时出现net.rim.device.api.smartcad.SmartCardNoCardPresentException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10004004/

10-10 14:30