PSAM

来源:互联网 发布:罗技m558 mac驱动下载 编辑:程序博客网 时间:2024/06/03 23:48
/**
 * PSAM
 * 
 * */
public class PSAM_Activity extends Activity implements OnClickListener{


private ArrayAdapter<?> select_samAdapter;//PSAM adapter
private ArrayAdapter<?> cosAdapter;//COS adapter
private EditText sam_send_data;//APDU send data 
private EditText sam_receive_data;//receive data 


private Spinner sam_spinner;//PSAM spinner
private Spinner sam_cos_spinner;//Cos spinner

private Button sam_reset_btn;//reset button
private Button sam_send_cmd_btn;//send button 
private Button sam_shut_down_btn;//shut down
public String sam_card = "01";//SAM1 is 01,SAM2 is02

public String TAG = "PSM_Activity";//Debug
public String activity = "com.example.psam_demo.PSAM_Activity";
PsamManager manager;
private Toast toast;
private void showToast(String info){
if (toast==null) {
toast = Toast.makeText(PSAM_Activity.this,info, 0);
}else {
toast.setText(info);
}
toast.show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setTitle("PSAM DEMO");
setContentView(R.layout.psam);
init();
}


private void init() {
sam_spinner = (Spinner) findViewById(R.id.select_samcard);
sam_cos_spinner = (Spinner) findViewById(R.id.psam_cos_cmd);
sam_send_data = (EditText) findViewById(R.id.sam_send_data);
sam_receive_data = (EditText) findViewById(R.id.sam_receive_data);
sam_reset_btn = (Button)findViewById(R.id.sam_reset);
sam_send_cmd_btn = (Button)findViewById(R.id.sam_send_cmd);
sam_shut_down_btn = (Button)findViewById(R.id.sam_shut_down);
// sam_clear_tips_btn = (Button)findViewById(R.id.sam_clear_tips);
// 添加卡座选项
select_samAdapter = ArrayAdapter.createFromResource(this,
R.array.select_samcard_arrays,
android.R.layout.simple_spinner_item);
select_samAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sam_spinner.setAdapter(select_samAdapter);
sam_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {


@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
// Toast.makeText(getApplicationContext(), select_samAdapter.getItem(position)+ "", Toast.LENGTH_SHORT).show();
if("SAM1".equals((String)select_samAdapter.getItem(position))){
sam_card = "01";
}else{
sam_card = "02";
}
Log.e(TAG,select_samAdapter.getItem(position)+"" );
}


@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}
});
// COS cmd adapter
cosAdapter = ArrayAdapter.createFromResource(this, R.array.cos_arrays,
android.R.layout.simple_spinner_item);
cosAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sam_cos_spinner.setAdapter(cosAdapter);


sam_cos_spinner.setOnItemSelectedListener(new mOnItemListemer());

sam_reset_btn.setOnClickListener(this);
sam_send_cmd_btn.setOnClickListener(this);
sam_shut_down_btn.setOnClickListener(this);

}

@Override
protected void onResume() {
// TODO Auto-generated method stub
manager = new PsamManager();
manager.Open();
super.onResume();
}

@Override
protected void onPause() {
manager.Close();
super.onPause();
}




//select cos cmd
private class mOnItemListemer implements OnItemSelectedListener {


@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Log.e("spinner", position + "");
switch (position) {
case 0:
sam_send_data.setText(R.string.random08);
break;
// case 1:
// sam_send_data.setText(R.string.select_MF);
// break;
// case 2:
// sam_send_data.setText(R.string.select_MF_6117);
// break;
// case 3:
// sam_send_data.setText(R.string.delete_MF);
// break;
// case 4:
// sam_send_data.setText(R.string.create_MF);
// break;
// case 5:
// sam_send_data.setText(R.string.stop_create_MF);
// break;
// case 6:
// sam_send_data.setText(R.string.create_EF01);
// break;
// case 7:
// sam_send_data.setText(R.string.create_EF02);
// break;
// case 8:
// sam_send_data.setText(R.string.write_74_EF01);
// break;
// case 9:
// sam_send_data.setText(R.string.read_76_EF01);
// break;


default:
break;
}
}


@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}




@Override
public void onClick(View v) {
sam_receive_data.setText("");//clear data 
byte [] cmd = null;  //cmd
switch (v.getId()) {
case R.id.sam_reset: // reset 
byte[] resetdata =manager.ResetPsam(sam_card);
if (resetdata.length>0) {
sam_receive_data.setText(Tools.Bytes2HexString(resetdata, resetdata.length));
showToast(getString(R.string.reset_success_));
}else {
showToast(getString(R.string.reset_fail_));
}
break;
case R.id.sam_send_cmd://Send cmd
cmd = Tools.HexString2Bytes(sam_send_data.getText().toString());
byte[] data = manager.SendToPsam(sam_card, cmd);
if (data!=null) {
sam_receive_data.setText(Tools.Bytes2HexString(data, data.length));
showToast(getResources().getString(R.string.return_success_));
}else {
showToast(getResources().getString(R.string.return_fail_));
}
break;
case R.id.sam_shut_down://Shut down
if (manager.ClosePsam(sam_card)){
showToast(getString(R.string.shut_down_success_));
}else {
showToast(getString(R.string.shut_down_fail_));
}
break;
default:
break;
}
}
}
原创粉丝点击