NFC读取sim卡之建立卡连接

原创 2016年08月30日 17:10:48

这里就讲建立sim卡连接的具体操作了,总结一下在建立卡连接的时候出现的问题以及对问题的解决办法。

问题1:遇到闪退,或者是应用没有报错但是就是程序与sim卡之间就是没有建立连接。

解决:一般这问题是openmobileapi.jar 包版本过低,更新到最新版本编号

问题2:如果应用于卡能建立连接但是打不开通道(有openLogicalChannel和openBasicChannel),或者是session都获取不到。

解决:这个一般是测试sim卡权限没开放,需要找卡商把测试卡权限开放便可以了


Android端代码:


package com.example.testorder;


import java.io.IOException;


import org.simalliance.openmobileapi.Channel;
import org.simalliance.openmobileapi.Reader;
import org.simalliance.openmobileapi.SEService;
import org.simalliance.openmobileapi.Session;


import android.annotation.SuppressLint;
import android.app.Activity;
import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends Activity implements SEService.CallBack {
private SEService seService;
NfcAdapter mNfc;
TextView mTextView;
EditText met;
Session session = null;
Channel channel = null;
String order;
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNfc = NfcAdapter.getDefaultAdapter(this);
// do layout and UI stuff
setContentView(R.layout.activity_main);
mTextView = (TextView) this.findViewById(R.id.tv1);
met = (EditText) findViewById(R.id.et);
order =getResources().getString(R.string.order);
met.setText(order);
try {
// 访问SEService
seService = new SEService(this, this);
mTextView.append("seService..\n");
} catch (SecurityException e) {
mTextView.append("Binding not allowed, uses-permission SMARTCARD?");
} catch (Exception e) {
mTextView.append("Exception: " + e.getMessage());
Log.e("err", e.getMessage());
}
}


@Override
protected void onDestroy() {
if (seService != null && seService.isConnected()) {
seService.shutdown();
}
super.onDestroy();
}


public void excuCade(View view) {
// 对卡操作执行指令
byte[] respApdu = null;
try {
respApdu = channel.transmit(HexTool.hexStringToBytes(order));
} catch (IllegalStateException | IllegalArgumentException
| SecurityException | NullPointerException | IOException e) {
mTextView.append("指令失败.."+e.getMessage());
}
String data = HexTool.bytesToHexString(respApdu);
mTextView.append("指令返回值.."+data);
}


// 连接上SEService
@Override
public void serviceConnected(SEService arg0) {
mTextView.append("serviceConnected..\n");


try {
mTextView.append("Getting available readers...\n");
Reader[] readers = seService.getReaders();
// readers[1]就是内部SE
session = readers[0].openSession();
mTextView.append("打开session成功...\n");
} catch (Exception e) {
mTextView.append("打开session失败: " + e.getMessage() + "\n");
}
try {
channel = session.openLogicalChannel(HexTool
.hexStringToBytes("A000000533C000FF860000000074"));
mTextView.append("打开逻辑通道成功...\n");
} catch (Exception e) {
mTextView.append("打开逻辑通道失败: " + e.getMessage() + "\n");
}


if (channel != null)
channel.close();
if (session != null)
session.close();


}
}

具体的有dome,我已经上传,可以下载运行

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android NFC 对sim卡读写注意事项

对于Android 近场通讯 NFC的开发过程中,对sim卡进行操作的时候app可以按照以下步骤进行操作,可以避免很多问题: 1.先导入org.simalliance.openmobileapi.j...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Telephony之PhoneInterfaceManager(原)

一、概述         PhoneInterfaceManager是一个Service,在被创建时通过ServiceManager注册自己,他作为Telephony对外的接口,可以接受其他进程向T...

Android NFC APDU

本文来自http://blog.csdn.net/hellogv/ 最近NFC支付挺火的,趁国庆宅在家,学习下Android 卡模拟(Host-based Card Emulation)。H...

手机访问NFC-SIM卡的SE

使用设备:MX3, 魅蓝note 调用:       Open Mobile API 问题描述: 1.nfc手机使用Open Mobile API访问到的是内置的nfc的SE?如何才能访...

NFC之读写NFC标签的文本

继上一篇整理了NFC之让Android自动运行程序,这一篇整理一下读写NFC标签的文本开始之前大概思路如下        对于NDEF文本格式来说。这些数据的第1个字节描述了数据的状态,然后若干个字节...
  • cuiran
  • cuiran
  • 2015年01月16日 22:00
  • 7401

NFC的读写实现--高上

NFC简介: Near Field Communication 近场通信,是一种数据传输技术。 与wifi、蓝牙、红外线等数据传输技术的一个主要差异就是有效距离一般不能超过4cm。 NFC...

NFC芯片与sim卡连接方案研究

  • 2011年08月17日 13:51
  • 265KB
  • 下载

升级到安卓5.0后,和包提示:“检测到您的手机或sim卡不完全支持和包业务,部分NFC相关功能将无法正常使用”的问题解决办法

一、问题描述 系统版本:Android 5.0 手机型号:三星note3 sim卡:移动的NFC-SIM卡 和包版本:4.2.71 问题现象: 1. 升级到安卓5.0前一切正常,可以使用和包为自己手...

中移动NFC专用SIM卡测试报告

近日来,NFC已经成为各大媒体报道的一个关键词,在微博微信等社交平台上也频频出现,这都要归功于北京移动在近期推出的一项新业务。从7月22日开始,北京移动用户可以到指定的营业厅办理更换支持NFC功能的S...
  • fen_liu
  • fen_liu
  • 2014年10月31日 18:35
  • 1773
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NFC读取sim卡之建立卡连接
举报原因:
原因补充:

(最多只允许输入30个字)