我想点击按钮时将apdu发送到nfc卡。 如果我在我的代码中写了onnewIntent(),当我来到手机附近的nfc卡时,我有了新的意图。但是当我点击一个按钮时,我想生成一个TECH_DISCOVERED意图 CertificateGeneration()
这是我的代码:
public class CertificateGenerationActivity extends AppCompatActivity {
EditText txtName;
EditText txtfamily;
EditText txtNCode;
EditText txtSimPass;
private List<Integer> mChannelIds;
//SubjectPublicKeyInfo publickeyobj;
byte[] strCmd=null;
byte[] Resp;
byte[] cert;
Intent intentobj;
private OnClickListener btnOnclickListener=new OnClickListener() {
@Override
public void onClick(View v) {
CertificateGeneration();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_certificate_generation);
Button btnSendReq=(Button)findViewById(R.id.button1);
btnSendReq.setOnClickListener(btnOnclickListener);
txtName=(EditText) findViewById(R.id.input_name);
txtfamily=(EditText) findViewById(R.id.input_family);
txtNCode=(EditText) findViewById(R.id.input_ncode);
txtSimPass=(EditText) findViewById(R.id.input_simpass);
}
private void CertificateGeneration()
{
byte[] csrdata=null,pkcs10req=null;
Intent IntObj=new Intent(CertificateGenerationActivity.this,appletcommunication.class);
IntObj.setAction(NfcAdapter.ACTION_TECH_DISCOVERED);
IntObj.putExtra(NfcAdapter.EXTRA_TAG,getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG));
appletcommunication appletclass=new appletcommunication(intentobj);
if(!appletclass.ReadyConnection)
return;//nfc communication not erady
//cal method login in applet
byte[] pin=new byte[] {(byte)1,(byte)2,(byte)3,(byte)4};
appletclass.Login(pin);
}
}
但这些代码是错误的
Intent IntObj=new Intent(CertificateGenerationActivity.this,appletcommunication.class);
IntObj.setAction(NfcAdapter.ACTION_TECH_DISCOVERED);
IntObj.putExtra(NfcAdapter.EXTRA_TAG,getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG));
当我在此行中获得标记时,因为astag为空,
Parcelable tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);