标签:substring ctas add action ++ enable ever name port
<uses-permission android:name="android.permission.NFC" /> <uses-feature android:name="android.hardware.nfc" android:required="true" />
<intent-filter> <action android:name="android.nfc.action.TAG_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
Intent nfcIntent = new Intent(this, getClass()); nfcIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); mPendingIntent = PendingIntent.getActivity(this, 0,nfcIntent , 0); mAdapter = NfcAdapter.getDefaultAdapter(this); if (mAdapter == null) { Toast.makeText(getApplicationContext(), "NFC feature is supported on this device.", Toast.LENGTH_SHORT).show(); return; }
private NfcAdapter mAdapter; private PendingIntent mPendingIntent; @TargetApi(Build.VERSION_CODES.GINGERBREAD_MR1) protected void onResume() { super.onResume(); mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null); } @Override protected void onNewIntent(Intent intent){ getTagInfo(intent); } @TargetApi(Build.VERSION_CODES.GINGERBREAD_MR1) private void getTagInfo(Intent intent) { Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); byte[] tagId = tag.getId(); String str = ByteArrayToHexString(tagId); str = flipHexStr(str); Long cardNo = Long.parseLong(str, 16); String ignoreOperationId = m_operationid; if(m_isOnline){ // if select all , pass in the operation id encoded in ticket // there should NOT be many operations, take the only one new CardValidationAsyncTask().execute(cardNo.toString()); } } @TargetApi(Build.VERSION_CODES.GINGERBREAD_MR1) @Override protected void onPause() { super.onPause(); if (mAdapter != null) { mAdapter.disableForegroundDispatch(this); } }
private String flipHexStr(String s){ StringBuilder result = new StringBuilder(); for (int i = 0; i <=s.length()-2; i=i+2) { result.append(new StringBuilder(s.substring(i,i+2)).reverse()); } return result.reverse().toString(); } private String ByteArrayToHexString(byte[] inarray) { int i, j, in; String[] hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" }; String out = ""; for (j = 0; j < inarray.length; ++j) { in = (int) inarray[j] & 0xff; i = (in >> 4) & 0x0f; out += hex[i]; i = in & 0x0f; out += hex[i]; } return out; }
标签:substring ctas add action ++ enable ever name port
原文地址:http://blog.csdn.net/lan_liang/article/details/53207765