如何在按钮单击时生成TECH_DISCOVERED意图

时间:2016-10-19 05:18:02

标签: android nfc smartcard

我想点击按钮时将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);

0 个答案:

没有答案