NFC手机二代身份证阅读开发说明

随着互联网的发展,我们发现人的身份是混乱的,最终将导致交易混乱,从而会出现大量的欺诈交易。如今网络诚信,网络安全等问题已经严重制约的我国电子商务,甚至威胁到我国互联网的健康发展,实名认证有利于确定身份,让商家和客户之间彼此了解和交流,有利于网络商城的开展,避免了一些不法分子在网络上欺骗消费者。4e6每天发布大量与生活相关的资讯平台

实名认证是市场经济中不能跳过的流程,那是否意味着每一次的认证都要让人百般怀疑的进行“拍照”、“上传”这一系列步骤吗,万一真遇上“钓鱼网站”,个人信息遭到泄露,后果将不堪设想,并且繁复的上传回馈过程也大大降低了工作效率。再者,如遇到假冒伪造证件,普通民众用肉眼并不能立即识别真假,4e6每天发布大量与生活相关的资讯平台

随着NFC手机的不断普及,利用手机NFC进行身份证证件识别和判断真伪,检测身份证信息并读取内容进行实名认证。未来,人们在线交易或签署合同时,只需用手机扫描身份证即可完成身份验证,随后便可使用该身份进行交易、合同签署,方便快捷的同时,安全性更是上升到更高层级。4e6每天发布大量与生活相关的资讯平台

4e6每天发布大量与生活相关的资讯平台

NFC手机二代身份证阅读开发说明4e6每天发布大量与生活相关的资讯平台

1、首先需要在AndroidManifest.xml文件中进行权限配置,我们需要手机上网和打开NFC功能的权限。4e6每天发布大量与生活相关的资讯平台

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >4e6每天发布大量与生活相关的资讯平台

</uses-permission>4e6每天发布大量与生活相关的资讯平台

<uses-permission android:name="android.permission.INTERNET" >4e6每天发布大量与生活相关的资讯平台

</uses-permission>4e6每天发布大量与生活相关的资讯平台

<uses-permission android:name="android.permission.NFC" />4e6每天发布大量与生活相关的资讯平台

<uses-feature4e6每天发布大量与生活相关的资讯平台

android:name="android.hardware.nfc"4e6每天发布大量与生活相关的资讯平台

android:required="true" />4e6每天发布大量与生活相关的资讯平台

2、在Android NFC手机二代身份证阅读工程中建立一个libs文件夹并导入.so库文件,我们提供了 包括,arm64-v8a、armeabi、armeabi-v7a、mips、mips64、x86、x86_64等一系列的库文件,开发者可以根据自己项目需求,选择性的导入.so库文件。4e6每天发布大量与生活相关的资讯平台

3、定义二代身份证阅读过程中的关键参数,如:姓名,性别,地址等。参数定义如下:4e6每天发布大量与生活相关的资讯平台

package cc.lotuscard;4e6每天发布大量与生活相关的资讯平台

public class TwoIdInfoParam {4e6每天发布大量与生活相关的资讯平台

public TwoIdInfoParam()4e6每天发布大量与生活相关的资讯平台

{4e6每天发布大量与生活相关的资讯平台

arrTwoIdName = new byte[30];4e6每天发布大量与生活相关的资讯平台

arrTwoIdSex = new byte[2];4e6每天发布大量与生活相关的资讯平台

arrTwoIdNation = new byte[4];4e6每天发布大量与生活相关的资讯平台

arrTwoIdBirthday = new byte[16];4e6每天发布大量与生活相关的资讯平台

arrTwoIdAddress = new byte[70];4e6每天发布大量与生活相关的资讯平台

arrTwoIdNo = new byte[36];4e6每天发布大量与生活相关的资讯平台

arrTwoIdSignedDepartment = new byte[30];4e6每天发布大量与生活相关的资讯平台

arrTwoIdValidityPeriodBegin = new byte[16];4e6每天发布大量与生活相关的资讯平台

arrTwoIdValidityPeriodEnd = new byte[16];4e6每天发布大量与生活相关的资讯平台

arrTwoIdNewAddress = new byte[70];4e6每天发布大量与生活相关的资讯平台

arrTwoIdPhoto = new byte[1024];4e6每天发布大量与生活相关的资讯平台

arrTwoIdFingerprint = new byte[1024];4e6每天发布大量与生活相关的资讯平台

arrTwoIdPhotoJpeg = new byte[4096];4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 姓名 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdName;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 性别 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdSex;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 民族 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdNation;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 出生日期 UNICODE YYYYMMDD4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdBirthday;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 住址 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdAddress;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 身份证号码 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdNo;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 签发机关 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdSignedDepartment;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 有效期起始日期 UNICODE YYYYMMDD4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdValidityPeriodBegin;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 有效期截止日期 UNICODE YYYYMMDD 有效期为长期时存储“长期”4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdValidityPeriodEnd;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 最新住址 UNICODE4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdNewAddress;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 照片信息4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdPhoto;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 指纹信息4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdFingerprint;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 照片信息 JPEG 格式4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public byte[] arrTwoIdPhotoJpeg;4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 照片信息长度 JPEG格式4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public int unTwoIdPhotoJpegLength;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

注意,NFC手机二代身份证阅读开发过程中,建立项目的时候,包名必须要遵循以下格式,否则无法编译通过。4e6每天发布大量与生活相关的资讯平台

package cc.lotuscard;4e6每天发布大量与生活相关的资讯平台

4、创建一个Activity来实现NFC手机二代身份证阅读的功能。实现代码如下:4e6每天发布大量与生活相关的资讯平台

package cn.highwillow.iddemo;4e6每天发布大量与生活相关的资讯平台

import android.Manifest;4e6每天发布大量与生活相关的资讯平台

import android.annotation.TargetApi;4e6每天发布大量与生活相关的资讯平台

import android.app.Activity;4e6每天发布大量与生活相关的资讯平台

import android.app.PendingIntent;4e6每天发布大量与生活相关的资讯平台

import android.content.Context;4e6每天发布大量与生活相关的资讯平台

import android.content.Intent;4e6每天发布大量与生活相关的资讯平台

import android.content.IntentFilter;4e6每天发布大量与生活相关的资讯平台

import android.content.pm.PackageManager;4e6每天发布大量与生活相关的资讯平台

import android.graphics.Bitmap;4e6每天发布大量与生活相关的资讯平台

import android.graphics.BitmapFactory;4e6每天发布大量与生活相关的资讯平台

import android.graphics.drawable.BitmapDrawable;4e6每天发布大量与生活相关的资讯平台

import android.hardware.usb.UsbDevice;4e6每天发布大量与生活相关的资讯平台

import android.hardware.usb.UsbDeviceConnection;4e6每天发布大量与生活相关的资讯平台

import android.hardware.usb.UsbEndpoint;4e6每天发布大量与生活相关的资讯平台

import android.hardware.usb.UsbInterface;4e6每天发布大量与生活相关的资讯平台

import android.hardware.usb.UsbManager;4e6每天发布大量与生活相关的资讯平台

import android.net.DhcpInfo;4e6每天发布大量与生活相关的资讯平台

import android.net.wifi.WifiInfo;4e6每天发布大量与生活相关的资讯平台

import android.net.wifi.WifiManager;4e6每天发布大量与生活相关的资讯平台

import android.nfc.NfcAdapter;4e6每天发布大量与生活相关的资讯平台

import android.nfc.Tag;4e6每天发布大量与生活相关的资讯平台

import android.nfc.tech.IsoDep;4e6每天发布大量与生活相关的资讯平台

import android.nfc.tech.MifareClassic;4e6每天发布大量与生活相关的资讯平台

import android.nfc.tech.Ndef;4e6每天发布大量与生活相关的资讯平台

import android.nfc.tech.NfcA;4e6每天发布大量与生活相关的资讯平台

import android.nfc.tech.NfcB;4e6每天发布大量与生活相关的资讯平台

import android.os.Parcelable;4e6每天发布大量与生活相关的资讯平台

import android.support.v4.app.ActivityCompat;4e6每天发布大量与生活相关的资讯平台

import android.support.v4.content.ContextCompat;4e6每天发布大量与生活相关的资讯平台

import android.support.v7.app.AppCompatActivity;4e6每天发布大量与生活相关的资讯平台

import android.os.Bundle;4e6每天发布大量与生活相关的资讯平台

import android.telephony.TelephonyManager;4e6每天发布大量与生活相关的资讯平台

import android.util.Log;4e6每天发布大量与生活相关的资讯平台

import android.view.View;4e6每天发布大量与生活相关的资讯平台

import android.widget.EditText;4e6每天发布大量与生活相关的资讯平台

import android.widget.ImageView;4e6每天发布大量与生活相关的资讯平台

import android.widget.TextView;4e6每天发布大量与生活相关的资讯平台

import android.widget.Toast;4e6每天发布大量与生活相关的资讯平台

import android.os.Build.VERSION;4e6每天发布大量与生活相关的资讯平台

import android.os.Bundle;4e6每天发布大量与生活相关的资讯平台

import android.os.Handler;4e6每天发布大量与生活相关的资讯平台

import android.os.Message;4e6每天发布大量与生活相关的资讯平台

import java.io.FileReader;4e6每天发布大量与生活相关的资讯平台

import java.io.IOException;4e6每天发布大量与生活相关的资讯平台

import java.io.InputStreamReader;4e6每天发布大量与生活相关的资讯平台

import java.io.LineNumberReader;4e6每天发布大量与生活相关的资讯平台

import java.io.Reader;4e6每天发布大量与生活相关的资讯平台

import java.io.UnsupportedEncodingException;4e6每天发布大量与生活相关的资讯平台

import java.net.InetAddress;4e6每天发布大量与生活相关的资讯平台

import java.net.MalformedURLException;4e6每天发布大量与生活相关的资讯平台

import java.net.NetworkInterface;4e6每天发布大量与生活相关的资讯平台

import java.text.SimpleDateFormat;4e6每天发布大量与生活相关的资讯平台

import java.sql.Date;4e6每天发布大量与生活相关的资讯平台

import java.util.ArrayList;4e6每天发布大量与生活相关的资讯平台

import java.util.HashMap;4e6每天发布大量与生活相关的资讯平台

import java.util.List;4e6每天发布大量与生活相关的资讯平台

import cc.lotuscard.ILotusCallBack;4e6每天发布大量与生活相关的资讯平台

import cc.lotuscard.LotusCardDriver;4e6每天发布大量与生活相关的资讯平台

import cc.lotuscard.LotusCardParam;4e6每天发布大量与生活相关的资讯平台

import cc.lotuscard.TwoIdInfoParam;4e6每天发布大量与生活相关的资讯平台

//import static GuoTeng.GtTermb.Wlt2Bmp2;4e6每天发布大量与生活相关的资讯平台

import static cc.lotuscard.LotusCardDriver.isZero;4e6每天发布大量与生活相关的资讯平台

public class MainActivity extends AppCompatActivity implements ILotusCallBack {4e6每天发布大量与生活相关的资讯平台

private static final int REQUEST_READ_PHONE_STATE = 0; // 请求码4e6每天发布大量与生活相关的资讯平台

private UsbDeviceConnection m_UsbDeviceConnection = null;4e6每天发布大量与生活相关的资讯平台

private UsbEndpoint m_InEndpoint = null;4e6每天发布大量与生活相关的资讯平台

private UsbEndpoint m_OutEndpoint = null;4e6每天发布大量与生活相关的资讯平台

private final static char[] HEX = {'0', '1', '2', '3', '4', '5', '6', '7',4e6每天发布大量与生活相关的资讯平台

'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};4e6每天发布大量与生活相关的资讯平台

private LotusCardDriver mLotusCardDriver;4e6每天发布大量与生活相关的资讯平台

private NfcAdapter m_NfcAdpater;4e6每天发布大量与生活相关的资讯平台

private PendingIntent pendingIntent;4e6每天发布大量与生活相关的资讯平台

private IntentFilter[] mFilters;4e6每天发布大量与生活相关的资讯平台

private String[][] mTechLists;4e6每天发布大量与生活相关的资讯平台

private Handler m_Handler = null;4e6每天发布大量与生活相关的资讯平台

private EditText m_edtLog;4e6每天发布大量与生活相关的资讯平台

private TextView m_txtCommandIndex;4e6每天发布大量与生活相关的资讯平台

private ImageView m_imgIdPhoto;4e6每天发布大量与生活相关的资讯平台

private Activity m_MainActivity = null;4e6每天发布大量与生活相关的资讯平台

private UsbManager m_UsbManager = null;4e6每天发布大量与生活相关的资讯平台

private UsbDevice m_LotusCardDevice = null;4e6每天发布大量与生活相关的资讯平台

private UsbInterface m_LotusCardInterface = null;4e6每天发布大量与生活相关的资讯平台

private UsbDeviceConnection m_LotusCardDeviceConnection = null;4e6每天发布大量与生活相关的资讯平台

private final int m_nVID = 1306;4e6每天发布大量与生活相关的资讯平台

private final int m_nPID = 20763;4e6每天发布大量与生活相关的资讯平台

private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";4e6每天发布大量与生活相关的资讯平台

private Boolean m_bUseUsbHostApi = true;4e6每天发布大量与生活相关的资讯平台

private Boolean m_bCanUseUsbHostApi = true;4e6每天发布大量与生活相关的资讯平台

private String m_strDeviceNode;4e6每天发布大量与生活相关的资讯平台

private long m_nDeviceHandle = -1;4e6每天发布大量与生活相关的资讯平台

private int m_nSystemVersion = -1;4e6每天发布大量与生活相关的资讯平台

private int m_nCommandInex = 0;4e6每天发布大量与生活相关的资讯平台

private static final String Activity_TAG = "IdDemo";4e6每天发布大量与生活相关的资讯平台

private EditText m_edtPostCode = null;4e6每天发布大量与生活相关的资讯平台

private EditText m_edtAccoutCode = null;4e6每天发布大量与生活相关的资讯平台

private EditText m_edtUserPassword = null;4e6每天发布大量与生活相关的资讯平台

private void requestPermission() {4e6每天发布大量与生活相关的资讯平台

List<String> permissionsNeeded = new ArrayList<>();4e6每天发布大量与生活相关的资讯平台

if (ContextCompat.checkSelfPermission(this,4e6每天发布大量与生活相关的资讯平台

Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {4e6每天发布大量与生活相关的资讯平台

permissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (ContextCompat.checkSelfPermission(this,4e6每天发布大量与生活相关的资讯平台

Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {4e6每天发布大量与生活相关的资讯平台

permissionsNeeded.add(Manifest.permission.READ_EXTERNAL_STORAGE);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) ==4e6每天发布大量与生活相关的资讯平台

PackageManager.PERMISSION_DENIED) {4e6每天发布大量与生活相关的资讯平台

permissionsNeeded.add(Manifest.permission.CAMERA);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (permissionsNeeded.size() > 0) {4e6每天发布大量与生活相关的资讯平台

ActivityCompat.requestPermissions(this, permissionsNeeded.toArray(new4e6每天发布大量与生活相关的资讯平台

String[permissionsNeeded.size()]), 1);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public void onRequestPermissionsResult(int requestCode, String permissions[], int4e6每天发布大量与生活相关的资讯平台

[] grantResults) {4e6每天发布大量与生活相关的资讯平台

switch (requestCode) {4e6每天发布大量与生活相关的资讯平台

case 1: {4e6每天发布大量与生活相关的资讯平台

boolean allowed = true;4e6每天发布大量与生活相关的资讯平台

if (grantResults.length > 0) {4e6每天发布大量与生活相关的资讯平台

for (int i = 0; i < grantResults.length; i++) {4e6每天发布大量与生活相关的资讯平台

if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {4e6每天发布大量与生活相关的资讯平台

//Timber.e("case 1权限没有打开");4e6每天发布大量与生活相关的资讯平台

AddLog(permissions[i] + "打开");4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

//Timber.e("case 1权限没有");4e6每天发布大量与生活相关的资讯平台

AddLog(permissions[i] + "关闭");4e6每天发布大量与生活相关的资讯平台

allowed = false;4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (!allowed) {4e6每天发布大量与生活相关的资讯平台

//O TODO 自定义处理4e6每天发布大量与生活相关的资讯平台

//dialog();4e6每天发布大量与生活相关的资讯平台

//Timber.e("case 1自定义处理");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

/**4e6每天发布大量与生活相关的资讯平台

* 获取手机的MAC地址4e6每天发布大量与生活相关的资讯平台

*4e6每天发布大量与生活相关的资讯平台

* @return4e6每天发布大量与生活相关的资讯平台

*/4e6每天发布大量与生活相关的资讯平台

public static String getMac() {4e6每天发布大量与生活相关的资讯平台

String str = "";4e6每天发布大量与生活相关的资讯平台

String macSerial = "";4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

Process pp = Runtime.getRuntime().exec(4e6每天发布大量与生活相关的资讯平台

"cat /sys/class/net/wlan0/address ");4e6每天发布大量与生活相关的资讯平台

InputStreamReader ir = new InputStreamReader(pp.getInputStream());4e6每天发布大量与生活相关的资讯平台

LineNumberReader input = new LineNumberReader(ir);4e6每天发布大量与生活相关的资讯平台

for (; null != str; ) {4e6每天发布大量与生活相关的资讯平台

str = input.readLine();4e6每天发布大量与生活相关的资讯平台

if (str != null) {4e6每天发布大量与生活相关的资讯平台

macSerial = str.trim();// 去空格4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} catch (Exception ex) {4e6每天发布大量与生活相关的资讯平台

ex.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (macSerial == null || "".equals(macSerial)) {4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

return loadFileAsString("/sys/class/net/eth0/address")4e6每天发布大量与生活相关的资讯平台

.toUpperCase().substring(0, 17);4e6每天发布大量与生活相关的资讯平台

} catch (Exception e) {4e6每天发布大量与生活相关的资讯平台

e.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return macSerial;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public static String loadFileAsString(String fileName) throws Exception {4e6每天发布大量与生活相关的资讯平台

FileReader reader = new FileReader(fileName);4e6每天发布大量与生活相关的资讯平台

String text = loadReaderAsString(reader);4e6每天发布大量与生活相关的资讯平台

reader.close();4e6每天发布大量与生活相关的资讯平台

return text;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public static String loadReaderAsString(Reader reader) throws Exception {4e6每天发布大量与生活相关的资讯平台

StringBuilder builder = new StringBuilder();4e6每天发布大量与生活相关的资讯平台

char[] buffer = new char[4096];4e6每天发布大量与生活相关的资讯平台

int readLength = reader.read(buffer);4e6每天发布大量与生活相关的资讯平台

while (readLength >= 0) {4e6每天发布大量与生活相关的资讯平台

builder.append(buffer, 0, readLength);4e6每天发布大量与生活相关的资讯平台

readLength = reader.read(buffer);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return builder.toString();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

protected void onCreate(Bundle savedInstanceState) {4e6每天发布大量与生活相关的资讯平台

super.onCreate(savedInstanceState);4e6每天发布大量与生活相关的资讯平台

setContentView(R.layout.activity_main);4e6每天发布大量与生活相关的资讯平台

m_MainActivity = this;4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

m_NfcAdpater = NfcAdapter.getDefaultAdapter(this);4e6每天发布大量与生活相关的资讯平台

if (m_NfcAdpater == null) {4e6每天发布大量与生活相关的资讯平台

Toast.makeText(this, "Not Found NfcAdapter!", Toast.LENGTH_SHORT)4e6每天发布大量与生活相关的资讯平台

.show();4e6每天发布大量与生活相关的资讯平台

// finish();4e6每天发布大量与生活相关的资讯平台

// return;4e6每天发布大量与生活相关的资讯平台

} else if (!m_NfcAdpater.isEnabled()) {4e6每天发布大量与生活相关的资讯平台

Toast.makeText(this, "Please Enabled NfcAdapter",4e6每天发布大量与生活相关的资讯平台

Toast.LENGTH_SHORT).show();4e6每天发布大量与生活相关的资讯平台

// finish();4e6每天发布大量与生活相关的资讯平台

// return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} catch (java.lang.NullPointerException e) {4e6每天发布大量与生活相关的资讯平台

Toast.makeText(this, e.toString(),4e6每天发布大量与生活相关的资讯平台

Toast.LENGTH_SHORT).show();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

m_edtLog = (EditText) findViewById(R.id.edtLog);4e6每天发布大量与生活相关的资讯平台

m_imgIdPhoto = (ImageView) findViewById(R.id.imgIdPhoto);4e6每天发布大量与生活相关的资讯平台

m_txtCommandIndex = (TextView) findViewById(R.id.txtCommandIndex);4e6每天发布大量与生活相关的资讯平台

m_edtPostCode = (EditText) findViewById(R.id.edtPostCode);4e6每天发布大量与生活相关的资讯平台

m_edtAccoutCode = (EditText) findViewById(R.id.edtAccountCode);4e6每天发布大量与生活相关的资讯平台

m_edtUserPassword = (EditText) findViewById(R.id.edtUserPassword);4e6每天发布大量与生活相关的资讯平台

pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,4e6每天发布大量与生活相关的资讯平台

getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);4e6每天发布大量与生活相关的资讯平台

IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);4e6每天发布大量与生活相关的资讯平台

ndef.addCategory("*/*");4e6每天发布大量与生活相关的资讯平台

mFilters = new IntentFilter[]{ndef};// 过滤器4e6每天发布大量与生活相关的资讯平台

mTechLists = new String[][]{4e6每天发布大量与生活相关的资讯平台

new String[]{MifareClassic.class.getName()},4e6每天发布大量与生活相关的资讯平台

new String[]{NfcB.class.getName()},4e6每天发布大量与生活相关的资讯平台

new String[]{IsoDep.class.getName()},4e6每天发布大量与生活相关的资讯平台

new String[]{NfcA.class.getName()}};// 允许扫描的标签类型4e6每天发布大量与生活相关的资讯平台

// 设置USB读写回调 串口可以不用此操作4e6每天发布大量与生活相关的资讯平台

m_bCanUseUsbHostApi = SetUsbCallBack();4e6每天发布大量与生活相关的资讯平台

if (m_bCanUseUsbHostApi) {4e6每天发布大量与生活相关的资讯平台

AddLog("Find IC Reader!");4e6每天发布大量与生活相关的资讯平台

AddLog("Device Node:" + m_strDeviceNode);4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

AddLog("Not Find IC Reader!");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

mLotusCardDriver = new LotusCardDriver();4e6每天发布大量与生活相关的资讯平台

mLotusCardDriver.m_lotusCallBack = this;4e6每天发布大量与生活相关的资讯平台

m_Handler = new Handler() {4e6每天发布大量与生活相关的资讯平台

public void handleMessage(Message msg) {4e6每天发布大量与生活相关的资讯平台

AddLog(msg.obj.toString());4e6每天发布大量与生活相关的资讯平台

super.handleMessage(msg);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

};4e6每天发布大量与生活相关的资讯平台

//区分系统版本4e6每天发布大量与生活相关的资讯平台

m_nSystemVersion = Integer.parseInt(VERSION.SDK);4e6每天发布大量与生活相关的资讯平台

// if(m_nSystemVersion<19)4e6每天发布大量与生活相关的资讯平台

// onNewIntent(getIntent());4e6每天发布大量与生活相关的资讯平台

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);4e6每天发布大量与生活相关的资讯平台

if (permissionCheck != PackageManager.PERMISSION_GRANTED) {4e6每天发布大量与生活相关的资讯平台

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE);4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

//TODO4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

requestPermission();4e6每天发布大量与生活相关的资讯平台

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);4e6每天发布大量与生活相关的资讯平台

String imsi = mTelephonyMgr.getSubscriberId();4e6每天发布大量与生活相关的资讯平台

String imei = mTelephonyMgr.getDeviceId();4e6每天发布大量与生活相关的资讯平台

//String tel = mTelephonyMgr.getLine1Number();4e6每天发布大量与生活相关的资讯平台

String tel = mTelephonyMgr.getLine1Number();4e6每天发布大量与生活相关的资讯平台

if (tel == null) tel = "";4e6每天发布大量与生活相关的资讯平台

if (tel.equals("")) {4e6每天发布大量与生活相关的资讯平台

tel = mTelephonyMgr.getSubscriberId();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (tel == null) tel = "";4e6每天发布大量与生活相关的资讯平台

String iccid = mTelephonyMgr.getSimSerialNumber(); //取出ICCID }4e6每天发布大量与生活相关的资讯平台

public static String int2ip(long ipInt) {4e6每天发布大量与生活相关的资讯平台

StringBuilder sb = new StringBuilder();4e6每天发布大量与生活相关的资讯平台

sb.append(ipInt & 0xFF).append(".");4e6每天发布大量与生活相关的资讯平台

sb.append((ipInt >> 8) & 0xFF).append(".");4e6每天发布大量与生活相关的资讯平台

sb.append((ipInt >> 16) & 0xFF).append(".");4e6每天发布大量与生活相关的资讯平台

sb.append((ipInt >> 24) & 0xFF);4e6每天发布大量与生活相关的资讯平台

return sb.toString();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public void OnClearLogListener(View arg0) {4e6每天发布大量与生活相关的资讯平台

m_imgIdPhoto.setBackgroundColor(0);4e6每天发布大量与生活相关的资讯平台

if (null == m_edtLog)4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

m_edtLog.setText("");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public void OnIdOtgTestListener(View arg0) {4e6每天发布大量与生活相关的资讯平台

if (m_nDeviceHandle == -1) {4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle = mLotusCardDriver.OpenDevice("", 0, 0,4e6每天发布大量与生活相关的资讯平台

0, 0,// 使用内部默认超时设置4e6每天发布大量与生活相关的资讯平台

true);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (m_nDeviceHandle == -1) return;4e6每天发布大量与生活相关的资讯平台

TwoIdInfoParam tTwoIdInfo = new TwoIdInfoParam();4e6每天发布大量与生活相关的资讯平台

boolean bResult = false;4e6每天发布大量与生活相关的资讯平台

int nResult = 0;4e6每天发布大量与生活相关的资讯平台

boolean bWlDecodeResult = false;4e6每天发布大量与生活相关的资讯平台

byte[] arrBmpAndWl = null;4e6每天发布大量与生活相关的资讯平台

String temp;4e6每天发布大量与生活相关的资讯平台

int nErrorCode = 0;4e6每天发布大量与生活相关的资讯平台

LotusCardParam tLotusCardParam1 = new LotusCardParam();4e6每天发布大量与生活相关的资讯平台

bResult = mLotusCardDriver.Beep(m_nDeviceHandle, 10);4e6每天发布大量与生活相关的资讯平台

// bResult = mLotusCardDriver.Beep(nDeviceHandle, 10);4e6每天发布大量与生活相关的资讯平台

if (!bResult) {4e6每天发布大量与生活相关的资讯平台

AddLog("Call Beep Error!");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("Call Beep Ok!");4e6每天发布大量与生活相关的资讯平台

bResult = mLotusCardDriver.SetCardType(m_nDeviceHandle, 'B');4e6每天发布大量与生活相关的资讯平台

if (!bResult) {4e6每天发布大量与生活相关的资讯平台

AddLog("Call SetCardType Error!");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

//mLotusCardDriver.GetTwoGenerationIDCardNo(m_nDeviceHandle);4e6每天发布大量与生活相关的资讯平台

AddLog("Call SetCardType Ok!");4e6每天发布大量与生活相关的资讯平台

nResult = mLotusCardDriver.RequestB(m_nDeviceHandle,0, tLotusCardParam1);4e6每天发布大量与生活相关的资讯平台

if(nResult== 0)4e6每天发布大量与生活相关的资讯平台

{4e6每天发布大量与生活相关的资讯平台

AddLog("Call RequestB Error!");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

nResult = mLotusCardDriver.SelectB(m_nDeviceHandle, tLotusCardParam1);4e6每天发布大量与生活相关的资讯平台

if(nResult== 0)4e6每天发布大量与生活相关的资讯平台

{4e6每天发布大量与生活相关的资讯平台

AddLog("Call SelectB Error!");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

bResult = mLotusCardDriver.GetTwoIdInfoByMcuServer(this, null,4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle, "samv.highwillow.cn", Integer.valueOf(m_edtAccoutCode.getText().toString()),4e6每天发布大量与生活相关的资讯平台

m_edtUserPassword.getText().toString(), tTwoIdInfo, Long.valueOf(m_edtPostCode.getText().toString()), 0, 2, true);4e6每天发布大量与生活相关的资讯平台

if (!bResult) {4e6每天发布大量与生活相关的资讯平台

nErrorCode = mLotusCardDriver.GetTwoIdErrorCode(m_nDeviceHandle);4e6每天发布大量与生活相关的资讯平台

AddLog("Call GetTwoIdInfoByMcuServer Error! ErrorCode:" + nErrorCode);4e6每天发布大量与生活相关的资讯平台

AddLog("ErrorInfo:" + mLotusCardDriver.GetIdErrorInfo(nErrorCode));4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("Call GetTwoIdInfoByMcuServer Ok!");4e6每天发布大量与生活相关的资讯平台

if (true == bResult) {4e6每天发布大量与生活相关的资讯平台

// 姓名4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdName, 0, 30,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

if (temp.equals("")) {4e6每天发布大量与生活相关的资讯平台

AddLog("数据为空");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("姓名:" + temp);4e6每天发布大量与生活相关的资讯平台

// 性别4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdSex, 0, 2,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

if (temp.equals("1"))4e6每天发布大量与生活相关的资讯平台

temp = "男";4e6每天发布大量与生活相关的资讯平台

else4e6每天发布大量与生活相关的资讯平台

temp = "女";4e6每天发布大量与生活相关的资讯平台

AddLog("性别:" + temp);4e6每天发布大量与生活相关的资讯平台

// 民族4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdNation, 0, 4,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

int code = Integer.parseInt(temp.toString());4e6每天发布大量与生活相关的资讯平台

temp = decodeNation(code);4e6每天发布大量与生活相关的资讯平台

} catch (Exception e) {4e6每天发布大量与生活相关的资讯平台

temp = "";4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("民族:" + temp);4e6每天发布大量与生活相关的资讯平台

// 出生日期4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdBirthday, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("出生日期:" + temp);4e6每天发布大量与生活相关的资讯平台

// 住址4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdAddress, 0,4e6每天发布大量与生活相关的资讯平台

70, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("住址:" + temp);4e6每天发布大量与生活相关的资讯平台

// 身份证号码4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdNo, 0, 36,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("身份证号码:" + temp);4e6每天发布大量与生活相关的资讯平台

// 签发机关4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdSignedDepartment, 0, 30,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("签发机关:" + temp);4e6每天发布大量与生活相关的资讯平台

// 有效期起始日期4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdValidityPeriodBegin, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("有效期起始日期:" + temp);4e6每天发布大量与生活相关的资讯平台

// 有效期截止日期 UNICODE YYYYMMDD 有效期为长期时存储“长期”4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdValidityPeriodEnd, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("有效期截止日期:" + temp);4e6每天发布大量与生活相关的资讯平台

if (tTwoIdInfo.unTwoIdPhotoJpegLength > 0) {4e6每天发布大量与生活相关的资讯平台

final Bitmap photo = BitmapFactory.decodeByteArray(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdPhotoJpeg, 0,4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.unTwoIdPhotoJpegLength);4e6每天发布大量与生活相关的资讯平台

runOnUiThread(new Runnable() {4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public void run() {4e6每天发布大量与生活相关的资讯平台

m_imgIdPhoto.setBackgroundDrawable(new BitmapDrawable(photo));4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

});4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} catch (UnsupportedEncodingException e1) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e1.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

AddLog("GetTwoIdInfoByMcuServer执行失败");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public void AddLog(String strLog) {4e6每天发布大量与生活相关的资讯平台

final String strText = strLog;4e6每天发布大量与生活相关的资讯平台

runOnUiThread(new Runnable() {4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public void run() {4e6每天发布大量与生活相关的资讯平台

SimpleDateFormat formatter = new SimpleDateFormat("MM-dd HH:mm:ss:SSS");4e6每天发布大量与生活相关的资讯平台

Date curDate = new Date(System.currentTimeMillis());// 获取当前时间4e6每天发布大量与生活相关的资讯平台

String strDate = formatter.format(curDate);4e6每天发布大量与生活相关的资讯平台

if (null == m_edtLog)4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

String strLogs = m_edtLog.getText().toString().trim();4e6每天发布大量与生活相关的资讯平台

if (strLogs.equals("")) {4e6每天发布大量与生活相关的资讯平台

strLogs = strDate + " " + strText;4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

strLogs += "\r\n" + strDate + " " + strText;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

m_edtLog.setText(strLogs);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

});4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public void showCommandIndex(int nIndex) {4e6每天发布大量与生活相关的资讯平台

final int nTmp = nIndex;4e6每天发布大量与生活相关的资讯平台

runOnUiThread(new Runnable() {4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public void run() {4e6每天发布大量与生活相关的资讯平台

m_txtCommandIndex.setText("索引" + nTmp);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

});4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

protected void onResume() {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated method stub4e6每天发布大量与生活相关的资讯平台

super.onResume();4e6每天发布大量与生活相关的资讯平台

Log.i(Activity_TAG, "This is Information");4e6每天发布大量与生活相关的资讯平台

if (m_NfcAdpater != null) {4e6每天发布大量与生活相关的资讯平台

m_NfcAdpater.enableForegroundDispatch(this, pendingIntent, mFilters,4e6每天发布大量与生活相关的资讯平台

mTechLists);4e6每天发布大量与生活相关的资讯平台

enableReaderMode();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

protected void onPause() {4e6每天发布大量与生活相关的资讯平台

super.onPause();4e6每天发布大量与生活相关的资讯平台

if (m_NfcAdpater != null) {4e6每天发布大量与生活相关的资讯平台

m_NfcAdpater.disableForegroundDispatch(this);4e6每天发布大量与生活相关的资讯平台

disableReaderMode();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@TargetApi(19)4e6每天发布大量与生活相关的资讯平台

private void enableReaderMode() {4e6每天发布大量与生活相关的资讯平台

if (m_nSystemVersion < 19)4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

Bundle options = new Bundle();4e6每天发布大量与生活相关的资讯平台

options.putInt(NfcAdapter.EXTRA_READER_PRESENCE_CHECK_DELAY, 5000);4e6每天发布大量与生活相关的资讯平台

//int READER_FLAGS = NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;4e6每天发布大量与生活相关的资讯平台

int READER_FLAGS = NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;4e6每天发布大量与生活相关的资讯平台

if (m_NfcAdpater != null) {4e6每天发布大量与生活相关的资讯平台

m_NfcAdpater.enableReaderMode(this, new IdReaderCallback(), READER_FLAGS, options);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@TargetApi(19)4e6每天发布大量与生活相关的资讯平台

public class IdReaderCallback implements NfcAdapter.ReaderCallback {4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public void onTagDiscovered(Tag tag) {4e6每天发布大量与生活相关的资讯平台

boolean bResult = false;4e6每天发布大量与生活相关的资讯平台

boolean bWlDecodeResult = false;4e6每天发布大量与生活相关的资讯平台

String temp;4e6每天发布大量与生活相关的资讯平台

int nErrorCode = 0;4e6每天发布大量与生活相关的资讯平台

byte[] arrBmpBuffer = new byte[38862];4e6每天发布大量与生活相关的资讯平台

NfcB nfcbId = NfcB.get(tag);4e6每天发布大量与生活相关的资讯平台

byte[] arrRequest = new byte[3];4e6每天发布大量与生活相关的资讯平台

byte[] arrSelect = new byte[9];4e6每天发布大量与生活相关的资讯平台

byte[] arrResult;4e6每天发布大量与生活相关的资讯平台

//byte[] arrBmpAndWl = null;4e6每天发布大量与生活相关的资讯平台

arrRequest[0] = (byte) 0x5;4e6每天发布大量与生活相关的资讯平台

arrRequest[1] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrRequest[2] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrSelect[0] = (byte) 0x1D;//1D 00 00 00 00 00 08 01 084e6每天发布大量与生活相关的资讯平台

arrSelect[1] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrSelect[2] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrSelect[3] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrSelect[4] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrSelect[5] = (byte) 0x0;4e6每天发布大量与生活相关的资讯平台

arrSelect[6] = (byte) 0x8;4e6每天发布大量与生活相关的资讯平台

arrSelect[7] = (byte) 0x1;4e6每天发布大量与生活相关的资讯平台

arrSelect[8] = (byte) 0x8;4e6每天发布大量与生活相关的资讯平台

if (nfcbId != null) {4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

nfcbId.connect();4e6每天发布大量与生活相关的资讯平台

if (nfcbId.isConnected())4e6每天发布大量与生活相关的资讯平台

AddLog("connect");4e6每天发布大量与生活相关的资讯平台

} catch (IOException e) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (nfcbId.isConnected()) {4e6每天发布大量与生活相关的资讯平台

TwoIdInfoParam tTwoIdInfo = new TwoIdInfoParam();4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

arrResult = nfcbId.transceive(arrRequest);4e6每天发布大量与生活相关的资讯平台

AddLog("length" + arrResult.length);4e6每天发布大量与生活相关的资讯平台

arrResult = nfcbId.transceive(arrSelect);4e6每天发布大量与生活相关的资讯平台

AddLog("length" + arrResult.length);4e6每天发布大量与生活相关的资讯平台

} catch (IOException e) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (m_nDeviceHandle == -1) {4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle = mLotusCardDriver.OpenDevice("", 0, 0,4e6每天发布大量与生活相关的资讯平台

0, 0,// 使用内部默认超时设置4e6每天发布大量与生活相关的资讯平台

true);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

m_nCommandInex = 0;4e6每天发布大量与生活相关的资讯平台

bResult = mLotusCardDriver.GetTwoIdInfoByMcuServer(m_MainActivity, nfcbId,4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle, "samv.highwillow.cn", Integer.valueOf(m_edtAccoutCode.getText().toString()),4e6每天发布大量与生活相关的资讯平台

//m_nDeviceHandle, "192.168.1.21", 99999,4e6每天发布大量与生活相关的资讯平台

m_edtUserPassword.getText().toString(), tTwoIdInfo, Long.valueOf(m_edtPostCode.getText().toString()), 0, 3, false);4e6每天发布大量与生活相关的资讯平台

if (!bResult) {4e6每天发布大量与生活相关的资讯平台

nErrorCode = mLotusCardDriver.GetTwoIdErrorCode(m_nDeviceHandle);4e6每天发布大量与生活相关的资讯平台

AddLog("Call GetTwoIdInfoByMcuServer Error! ErrorCode:" + nErrorCode);4e6每天发布大量与生活相关的资讯平台

AddLog("ErrorInfo:" + mLotusCardDriver.GetIdErrorInfo(nErrorCode));4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("Call GetTwoIdInfoByMcuServer Ok!");4e6每天发布大量与生活相关的资讯平台

if (true == bResult) {4e6每天发布大量与生活相关的资讯平台

// 姓名4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdName, 0, 30,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

if (temp.equals("")) {4e6每天发布大量与生活相关的资讯平台

AddLog("数据为空");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("姓名:" + temp);4e6每天发布大量与生活相关的资讯平台

// 性别4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdSex, 0, 2,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

if (temp.equals("1"))4e6每天发布大量与生活相关的资讯平台

temp = "男";4e6每天发布大量与生活相关的资讯平台

else4e6每天发布大量与生活相关的资讯平台

temp = "女";4e6每天发布大量与生活相关的资讯平台

AddLog("性别:" + temp);4e6每天发布大量与生活相关的资讯平台

// 民族4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdNation, 0, 4,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

int code = Integer.parseInt(temp.toString());4e6每天发布大量与生活相关的资讯平台

temp = decodeNation(code);4e6每天发布大量与生活相关的资讯平台

} catch (Exception e) {4e6每天发布大量与生活相关的资讯平台

temp = "";4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("民族:" + temp);4e6每天发布大量与生活相关的资讯平台

// 出生日期4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdBirthday, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("出生日期:" + temp);4e6每天发布大量与生活相关的资讯平台

// 住址4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdAddress, 0,4e6每天发布大量与生活相关的资讯平台

70, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("住址:" + temp);4e6每天发布大量与生活相关的资讯平台

// 身份证号码4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdNo, 0, 36,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("身份证号码:" + temp);4e6每天发布大量与生活相关的资讯平台

// 签发机关4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdSignedDepartment, 0, 30,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("签发机关:" + temp);4e6每天发布大量与生活相关的资讯平台

// 有效期起始日期4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdValidityPeriodBegin, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("有效期起始日期:" + temp);4e6每天发布大量与生活相关的资讯平台

// 有效期截止日期 UNICODE YYYYMMDD 有效期为长期时存储“长期”4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdValidityPeriodEnd, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("有效期截止日期:" + temp);4e6每天发布大量与生活相关的资讯平台

//显示JPEG4e6每天发布大量与生活相关的资讯平台

//显示BMP4e6每天发布大量与生活相关的资讯平台

if(true == mLotusCardDriver.GetIdPhotoBmpBuffer(m_nDeviceHandle,arrBmpBuffer)) {4e6每天发布大量与生活相关的资讯平台

final Bitmap photo = BitmapFactory.decodeByteArray(4e6每天发布大量与生活相关的资讯平台

arrBmpBuffer, 0,4e6每天发布大量与生活相关的资讯平台

38862);4e6每天发布大量与生活相关的资讯平台

runOnUiThread(new Runnable() {4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public void run() {4e6每天发布大量与生活相关的资讯平台

m_imgIdPhoto.setBackgroundDrawable(new BitmapDrawable(photo));4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

});4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} catch (UnsupportedEncodingException e1) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e1.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

AddLog("GetTwoIdInfoByMcuServer执行失败");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@TargetApi(19)4e6每天发布大量与生活相关的资讯平台

private void disableReaderMode() {4e6每天发布大量与生活相关的资讯平台

if (m_nSystemVersion < 19)4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

if (m_NfcAdpater != null) {4e6每天发布大量与生活相关的资讯平台

m_NfcAdpater.disableReaderMode(this);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

//@Override4e6每天发布大量与生活相关的资讯平台

protected void onNewIntent(Intent intent) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated method stub4e6每天发布大量与生活相关的资讯平台

super.onNewIntent(intent);4e6每天发布大量与生活相关的资讯平台

boolean bResult = false;4e6每天发布大量与生活相关的资讯平台

boolean bWlDecodeResult = false;4e6每天发布大量与生活相关的资讯平台

String temp;4e6每天发布大量与生活相关的资讯平台

int nErrorCode = 0;4e6每天发布大量与生活相关的资讯平台

Log.d(Activity_TAG, intent.getAction());4e6每天发布大量与生活相关的资讯平台

Log.i(Activity_TAG, "onNewIntent");4e6每天发布大量与生活相关的资讯平台

if (m_nSystemVersion >= 19)4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {4e6每天发布大量与生活相关的资讯平台

Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);4e6每天发布大量与生活相关的资讯平台

NfcB nfcbId = NfcB.get(tagFromIntent);4e6每天发布大量与生活相关的资讯平台

if (nfcbId != null) {4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

nfcbId.connect();4e6每天发布大量与生活相关的资讯平台

if (nfcbId.isConnected())4e6每天发布大量与生活相关的资讯平台

AddLog("connect");4e6每天发布大量与生活相关的资讯平台

} catch (IOException e) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (nfcbId.isConnected()) {4e6每天发布大量与生活相关的资讯平台

TwoIdInfoParam tTwoIdInfo = new TwoIdInfoParam();4e6每天发布大量与生活相关的资讯平台

if (m_nDeviceHandle == -1) {4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle = mLotusCardDriver.OpenDevice("", 0, 0,4e6每天发布大量与生活相关的资讯平台

0, 0,// 使用内部默认超时设置4e6每天发布大量与生活相关的资讯平台

true);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

bResult = mLotusCardDriver.GetTwoIdInfoByMcuServer(this, nfcbId,4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle, "samv.highwillow.cn", 99999,4e6每天发布大量与生活相关的资讯平台

"123456", tTwoIdInfo, 400000, 0, 2, false);4e6每天发布大量与生活相关的资讯平台

if (!bResult) {4e6每天发布大量与生活相关的资讯平台

nErrorCode = mLotusCardDriver.GetTwoIdErrorCode(m_nDeviceHandle);4e6每天发布大量与生活相关的资讯平台

AddLog("Call GetTwoIdInfoByMcuServer Error! ErrorCode:" + nErrorCode);4e6每天发布大量与生活相关的资讯平台

AddLog("ErrorInfo:" + mLotusCardDriver.GetIdErrorInfo(nErrorCode));4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("Call GetTwoIdInfoByMcuServer Ok!");4e6每天发布大量与生活相关的资讯平台

//处理照片4e6每天发布大量与生活相关的资讯平台

if (0x00 == tTwoIdInfo.unTwoIdPhotoJpegLength) {4e6每天发布大量与生活相关的资讯平台

bWlDecodeResult = mLotusCardDriver.WlDecodeByServer(m_nDeviceHandle, "119.29.18.30", tTwoIdInfo);4e6每天发布大量与生活相关的资讯平台

if (!bWlDecodeResult) {4e6每天发布大量与生活相关的资讯平台

AddLog("Call WlDecodeByServer Error! ");4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

AddLog("Call WlDecodeByServer Ok!");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (true == bResult) {4e6每天发布大量与生活相关的资讯平台

// 姓名4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdName, 0, 30,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

if (temp.equals("")) {4e6每天发布大量与生活相关的资讯平台

AddLog("数据为空");4e6每天发布大量与生活相关的资讯平台

return;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("姓名:" + temp);4e6每天发布大量与生活相关的资讯平台

// 性别4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdSex, 0, 2,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

if (temp.equals("1"))4e6每天发布大量与生活相关的资讯平台

temp = "男";4e6每天发布大量与生活相关的资讯平台

else4e6每天发布大量与生活相关的资讯平台

temp = "女";4e6每天发布大量与生活相关的资讯平台

AddLog("性别:" + temp);4e6每天发布大量与生活相关的资讯平台

// 民族4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdNation, 0, 4,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

int code = Integer.parseInt(temp.toString());4e6每天发布大量与生活相关的资讯平台

temp = decodeNation(code);4e6每天发布大量与生活相关的资讯平台

} catch (Exception e) {4e6每天发布大量与生活相关的资讯平台

temp = "";4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

AddLog("民族:" + temp);4e6每天发布大量与生活相关的资讯平台

// 出生日期4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdBirthday, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("出生日期:" + temp);4e6每天发布大量与生活相关的资讯平台

// 住址4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdAddress, 0,4e6每天发布大量与生活相关的资讯平台

70, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("住址:" + temp);4e6每天发布大量与生活相关的资讯平台

// 身份证号码4e6每天发布大量与生活相关的资讯平台

temp = new String(tTwoIdInfo.arrTwoIdNo, 0, 36,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("身份证号码:" + temp);4e6每天发布大量与生活相关的资讯平台

// 签发机关4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdSignedDepartment, 0, 30,4e6每天发布大量与生活相关的资讯平台

"UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("签发机关:" + temp);4e6每天发布大量与生活相关的资讯平台

// 有效期起始日期4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdValidityPeriodBegin, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("有效期起始日期:" + temp);4e6每天发布大量与生活相关的资讯平台

// 有效期截止日期 UNICODE YYYYMMDD 有效期为长期时存储“长期”4e6每天发布大量与生活相关的资讯平台

temp = new String(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdValidityPeriodEnd, 0,4e6每天发布大量与生活相关的资讯平台

16, "UTF-16LE").trim();4e6每天发布大量与生活相关的资讯平台

AddLog("有效期截止日期:" + temp);4e6每天发布大量与生活相关的资讯平台

if (tTwoIdInfo.unTwoIdPhotoJpegLength > 0) {4e6每天发布大量与生活相关的资讯平台

Bitmap photo = BitmapFactory.decodeByteArray(4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.arrTwoIdPhotoJpeg, 0,4e6每天发布大量与生活相关的资讯平台

tTwoIdInfo.unTwoIdPhotoJpegLength);4e6每天发布大量与生活相关的资讯平台

m_imgIdPhoto.setBackgroundDrawable(new BitmapDrawable(photo));4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} catch (UnsupportedEncodingException e1) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e1.printStackTrace();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

AddLog("GetTwoIdInfoByMcuServer执行失败");4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

private String decodeNation(int code) {4e6每天发布大量与生活相关的资讯平台

String nation;4e6每天发布大量与生活相关的资讯平台

switch (code) {4e6每天发布大量与生活相关的资讯平台

case 1:4e6每天发布大量与生活相关的资讯平台

nation = "汉";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 2:4e6每天发布大量与生活相关的资讯平台

nation = "蒙古";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 3:4e6每天发布大量与生活相关的资讯平台

nation = "回";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 4:4e6每天发布大量与生活相关的资讯平台

nation = "藏";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 5:4e6每天发布大量与生活相关的资讯平台

nation = "维吾尔";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 6:4e6每天发布大量与生活相关的资讯平台

nation = "苗";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 7:4e6每天发布大量与生活相关的资讯平台

nation = "彝";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 8:4e6每天发布大量与生活相关的资讯平台

nation = "壮";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 9:4e6每天发布大量与生活相关的资讯平台

nation = "布依";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 10:4e6每天发布大量与生活相关的资讯平台

nation = "朝鲜";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 11:4e6每天发布大量与生活相关的资讯平台

nation = "满";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 12:4e6每天发布大量与生活相关的资讯平台

nation = "侗";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 13:4e6每天发布大量与生活相关的资讯平台

nation = "瑶";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 14:4e6每天发布大量与生活相关的资讯平台

nation = "白";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 15:4e6每天发布大量与生活相关的资讯平台

nation = "土家";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 16:4e6每天发布大量与生活相关的资讯平台

nation = "哈尼";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 17:4e6每天发布大量与生活相关的资讯平台

nation = "哈萨克";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 18:4e6每天发布大量与生活相关的资讯平台

nation = "傣";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 19:4e6每天发布大量与生活相关的资讯平台

nation = "黎";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 20:4e6每天发布大量与生活相关的资讯平台

nation = "傈僳";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 21:4e6每天发布大量与生活相关的资讯平台

nation = "佤";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 22:4e6每天发布大量与生活相关的资讯平台

nation = "畲";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 23:4e6每天发布大量与生活相关的资讯平台

nation = "高山";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 24:4e6每天发布大量与生活相关的资讯平台

nation = "拉祜";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 25:4e6每天发布大量与生活相关的资讯平台

nation = "水";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 26:4e6每天发布大量与生活相关的资讯平台

nation = "东乡";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 27:4e6每天发布大量与生活相关的资讯平台

nation = "纳西";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 28:4e6每天发布大量与生活相关的资讯平台

nation = "景颇";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 29:4e6每天发布大量与生活相关的资讯平台

nation = "柯尔克孜";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 30:4e6每天发布大量与生活相关的资讯平台

nation = "土";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 31:4e6每天发布大量与生活相关的资讯平台

nation = "达斡尔";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 32:4e6每天发布大量与生活相关的资讯平台

nation = "仫佬";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 33:4e6每天发布大量与生活相关的资讯平台

nation = "羌";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 34:4e6每天发布大量与生活相关的资讯平台

nation = "布朗";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 35:4e6每天发布大量与生活相关的资讯平台

nation = "撒拉";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 36:4e6每天发布大量与生活相关的资讯平台

nation = "毛南";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 37:4e6每天发布大量与生活相关的资讯平台

nation = "仡佬";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 38:4e6每天发布大量与生活相关的资讯平台

nation = "锡伯";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 39:4e6每天发布大量与生活相关的资讯平台

nation = "阿昌";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 40:4e6每天发布大量与生活相关的资讯平台

nation = "普米";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 41:4e6每天发布大量与生活相关的资讯平台

nation = "塔吉克";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 42:4e6每天发布大量与生活相关的资讯平台

nation = "怒";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 43:4e6每天发布大量与生活相关的资讯平台

nation = "乌孜别克";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 44:4e6每天发布大量与生活相关的资讯平台

nation = "俄罗斯";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 45:4e6每天发布大量与生活相关的资讯平台

nation = "鄂温克";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 46:4e6每天发布大量与生活相关的资讯平台

nation = "德昂";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 47:4e6每天发布大量与生活相关的资讯平台

nation = "保安";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 48:4e6每天发布大量与生活相关的资讯平台

nation = "裕固";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 49:4e6每天发布大量与生活相关的资讯平台

nation = "京";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 50:4e6每天发布大量与生活相关的资讯平台

nation = "塔塔尔";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 51:4e6每天发布大量与生活相关的资讯平台

nation = "独龙";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 52:4e6每天发布大量与生活相关的资讯平台

nation = "鄂伦春";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 53:4e6每天发布大量与生活相关的资讯平台

nation = "赫哲";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 54:4e6每天发布大量与生活相关的资讯平台

nation = "门巴";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 55:4e6每天发布大量与生活相关的资讯平台

nation = "珞巴";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 56:4e6每天发布大量与生活相关的资讯平台

nation = "基诺";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 97:4e6每天发布大量与生活相关的资讯平台

nation = "其他";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

case 98:4e6每天发布大量与生活相关的资讯平台

nation = "外国血统中国籍人士";4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

default:4e6每天发布大量与生活相关的资讯平台

nation = "";4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return nation;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public String toHexString(byte[] d, int s, int n) {4e6每天发布大量与生活相关的资讯平台

final char[] ret = new char[n * 2];4e6每天发布大量与生活相关的资讯平台

final int e = s + n;4e6每天发布大量与生活相关的资讯平台

int x = 0;4e6每天发布大量与生活相关的资讯平台

for (int i = s; i < e; ++i) {4e6每天发布大量与生活相关的资讯平台

final byte v = d[i];4e6每天发布大量与生活相关的资讯平台

ret[x++] = HEX[0x0F & (v >> 4)];4e6每天发布大量与生活相关的资讯平台

ret[x++] = HEX[0x0F & v];4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return new String(ret);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public String toHexStringR(byte[] d, int s, int n) {4e6每天发布大量与生活相关的资讯平台

final char[] ret = new char[n * 2];4e6每天发布大量与生活相关的资讯平台

int x = 0;4e6每天发布大量与生活相关的资讯平台

for (int i = s + n - 1; i >= s; --i) {4e6每天发布大量与生活相关的资讯平台

final byte v = d[i];4e6每天发布大量与生活相关的资讯平台

ret[x++] = HEX[0x0F & (v >> 4)];4e6每天发布大量与生活相关的资讯平台

ret[x++] = HEX[0x0F & v];4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return new String(ret);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

public boolean callBackExtendIdDeviceProcess(Object objUser,4e6每天发布大量与生活相关的资讯平台

byte[] arrBuffer) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated method stub4e6每天发布大量与生活相关的资讯平台

boolean bResult = false;4e6每天发布大量与生活相关的资讯平台

NfcB nfcbId = (NfcB) objUser;4e6每天发布大量与生活相关的资讯平台

if (null == nfcbId)4e6每天发布大量与生活相关的资讯平台

return false;4e6每天发布大量与生活相关的资讯平台

byte[] arrCommnad = new byte[arrBuffer[0]];4e6每天发布大量与生活相关的资讯平台

System.arraycopy(arrBuffer, 1, arrCommnad, 0, arrBuffer[0]);4e6每天发布大量与生活相关的资讯平台

//AddLog("执行指令"+arrCommnad.length);4e6每天发布大量与生活相关的资讯平台

m_nCommandInex++;4e6每天发布大量与生活相关的资讯平台

showCommandIndex(m_nCommandInex);4e6每天发布大量与生活相关的资讯平台

try {4e6每天发布大量与生活相关的资讯平台

//Log.i("LOTUS_CARD_DRIVER","Send "+toHexString(arrCommnad, 0, arrCommnad.length));4e6每天发布大量与生活相关的资讯平台

byte[] arrResult = nfcbId.transceive(arrCommnad);4e6每天发布大量与生活相关的资讯平台

//Log.i("LOTUS_CARD_DRIVER","Receive "+toHexString(arrResult, 0, arrResult.length));4e6每天发布大量与生活相关的资讯平台

if (LotusCardDriver.isZero(arrResult)) {4e6每天发布大量与生活相关的资讯平台

AddLog("读取卡片数据全部为0");4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

if (arrResult.length > 2) {4e6每天发布大量与生活相关的资讯平台

if (((byte) 0x90 == arrResult[arrResult.length - 3]) &&4e6每天发布大量与生活相关的资讯平台

((byte) 0x00 == arrResult[arrResult.length - 2]) &&4e6每天发布大量与生活相关的资讯平台

((byte) 0x00 == arrResult[arrResult.length - 1])) {4e6每天发布大量与生活相关的资讯平台

arrBuffer[0] = (byte) (arrResult.length - 1);4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

arrBuffer[0] = (byte) (arrResult.length);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

arrBuffer[0] = (byte) (arrResult.length);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

System.arraycopy(arrResult, 0, arrBuffer, 1, arrBuffer[0]);4e6每天发布大量与生活相关的资讯平台

bResult = true;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} catch (IOException e) {4e6每天发布大量与生活相关的资讯平台

// TODO Auto-generated catch block4e6每天发布大量与生活相关的资讯平台

e.printStackTrace();4e6每天发布大量与生活相关的资讯平台

AddLog(e.getMessage());4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

private Boolean SetUsbCallBack() {4e6每天发布大量与生活相关的资讯平台

Boolean bResult = false;4e6每天发布大量与生活相关的资讯平台

PendingIntent pendingIntent;4e6每天发布大量与生活相关的资讯平台

pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(4e6每天发布大量与生活相关的资讯平台

ACTION_USB_PERMISSION), 0);4e6每天发布大量与生活相关的资讯平台

m_UsbManager = (UsbManager) getSystemService(USB_SERVICE);4e6每天发布大量与生活相关的资讯平台

if (null == m_UsbManager)4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

HashMap<String, UsbDevice> deviceList = m_UsbManager.getDeviceList();4e6每天发布大量与生活相关的资讯平台

if (!deviceList.isEmpty()) {4e6每天发布大量与生活相关的资讯平台

for (UsbDevice device : deviceList.values()) {4e6每天发布大量与生活相关的资讯平台

if ((m_nVID == device.getVendorId())4e6每天发布大量与生活相关的资讯平台

&& (m_nPID == device.getProductId())) {4e6每天发布大量与生活相关的资讯平台

m_LotusCardDevice = device;4e6每天发布大量与生活相关的资讯平台

m_strDeviceNode = m_LotusCardDevice.getDeviceName();4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (null == m_LotusCardDevice)4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

m_LotusCardInterface = m_LotusCardDevice.getInterface(0);4e6每天发布大量与生活相关的资讯平台

if (null == m_LotusCardInterface)4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

if (false == m_UsbManager.hasPermission(m_LotusCardDevice)) {4e6每天发布大量与生活相关的资讯平台

m_UsbManager.requestPermission(m_LotusCardDevice, pendingIntent);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

UsbDeviceConnection conn = null;4e6每天发布大量与生活相关的资讯平台

if (m_UsbManager.hasPermission(m_LotusCardDevice)) {4e6每天发布大量与生活相关的资讯平台

conn = m_UsbManager.openDevice(m_LotusCardDevice);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (null == conn)4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

if (conn.claimInterface(m_LotusCardInterface, true)) {4e6每天发布大量与生活相关的资讯平台

m_LotusCardDeviceConnection = conn;4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

conn.close();4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (null == m_LotusCardDeviceConnection)4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

// 把上面获取的对性设置到接口中用于回调操作4e6每天发布大量与生活相关的资讯平台

m_UsbDeviceConnection = m_LotusCardDeviceConnection;4e6每天发布大量与生活相关的资讯平台

if (m_LotusCardInterface.getEndpoint(1) != null) {4e6每天发布大量与生活相关的资讯平台

m_OutEndpoint = m_LotusCardInterface.getEndpoint(1);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (m_LotusCardInterface.getEndpoint(0) != null) {4e6每天发布大量与生活相关的资讯平台

m_InEndpoint = m_LotusCardInterface.getEndpoint(0);4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

bResult = true;4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

@Override4e6每天发布大量与生活相关的资讯平台

public boolean callBackReadWriteProcess(long nDeviceHandle, boolean bRead, byte[] arrBuffer) {4e6每天发布大量与生活相关的资讯平台

int nResult = 0;4e6每天发布大量与生活相关的资讯平台

boolean bResult = false;4e6每天发布大量与生活相关的资讯平台

int nBufferLength = arrBuffer.length;4e6每天发布大量与生活相关的资讯平台

int nWaitCount = 0;4e6每天发布大量与生活相关的资讯平台

if (null == m_UsbDeviceConnection)4e6每天发布大量与生活相关的资讯平台

return false;4e6每天发布大量与生活相关的资讯平台

if (null == m_OutEndpoint)4e6每天发布大量与生活相关的资讯平台

return false;4e6每天发布大量与生活相关的资讯平台

if (null == m_InEndpoint)4e6每天发布大量与生活相关的资讯平台

return false;4e6每天发布大量与生活相关的资讯平台

//AddLog("callBackReadWriteProcess nBufferLength:" + nBufferLength);4e6每天发布大量与生活相关的资讯平台

if (nBufferLength < 65)4e6每天发布大量与生活相关的资讯平台

return false;4e6每天发布大量与生活相关的资讯平台

if (true == bRead) {4e6每天发布大量与生活相关的资讯平台

arrBuffer[0] = 0;4e6每天发布大量与生活相关的资讯平台

while (true) {4e6每天发布大量与生活相关的资讯平台

nResult = m_UsbDeviceConnection.bulkTransfer(m_InEndpoint,4e6每天发布大量与生活相关的资讯平台

arrBuffer, 64, 5000);4e6每天发布大量与生活相关的资讯平台

if (nResult <= 0)4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

if (arrBuffer[0] != 0) {4e6每天发布大量与生活相关的资讯平台

//此处调整一下4e6每天发布大量与生活相关的资讯平台

System.arraycopy(arrBuffer, 0, arrBuffer, 1, nResult);4e6每天发布大量与生活相关的资讯平台

arrBuffer[0] = (byte) nResult;4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

nWaitCount++;4e6每天发布大量与生活相关的资讯平台

if (nWaitCount > 1000)4e6每天发布大量与生活相关的资讯平台

break;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

if (nResult < 64) AddLog("m_InEndpoint bulkTransfer Read:" + nResult);4e6每天发布大量与生活相关的资讯平台

if (nResult == 64) {4e6每天发布大量与生活相关的资讯平台

bResult = true;4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

bResult = false;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

nResult = m_UsbDeviceConnection.bulkTransfer(m_OutEndpoint,4e6每天发布大量与生活相关的资讯平台

arrBuffer, 64, 3000);4e6每天发布大量与生活相关的资讯平台

//AddLog("m_OutEndpoint bulkTransfer Write:"+nResult);4e6每天发布大量与生活相关的资讯平台

if (nResult == 64) {4e6每天发布大量与生活相关的资讯平台

bResult = true;4e6每天发布大量与生活相关的资讯平台

//AddLog("m_OutEndpoint bulkTransfer Write Ok!");4e6每天发布大量与生活相关的资讯平台

} else {4e6每天发布大量与生活相关的资讯平台

bResult = false;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

return bResult;4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

}4e6每天发布大量与生活相关的资讯平台

注意:以下两个文本框需要输入并获取正确的用户名和密码才能接入解析服务器。4e6每天发布大量与生活相关的资讯平台

m_nDeviceHandle, "samv.highwillow.cn", Integer.valueOf(m_edtAccoutCode.getText().toString()),4e6每天发布大量与生活相关的资讯平台

m_edtUserPassword.getText().toString(), tTwoIdInfo, Long.valueOf(m_edtPostCode.getText().toString()), 0, 2, true);4e6每天发布大量与生活相关的资讯平台

以上内容是关于NFC手机二代身份证阅读开发说明,仅供参考!4e6每天发布大量与生活相关的资讯平台

也许你还喜欢

ups不间断电源原理分析

当前在电源市场上,所销售的电源类型较多,不同类型的电源,相应的功能与作用有所不同。在超

空间背景音乐怎么添加图文教程分享

怎样免费添加QQ空间背景音乐其实步骤也不多,很简单,主要有以下几个步骤,详情如下

万能转换器破解版怎么用?具体操作方

万能格式转换器是一款功能强大的格式转换软件,音频、视频、图片、光驱设备都可以通过万

rmvb转mp4格式转换器图文教程

在我们日常娱乐和日常工作中,现在网络上一些高清的视频一般都是rmvb格式的,而一些播放设

支付宝网络系统异常怎么解决

支付宝支付出现网络系统异常是因为IE浏览器设置Internet选项不恰当而导致的,去重新设置

win10蓝牙驱动破解版安装图文教程

win10蓝牙驱动怎么安装?请看下面具体操作方法。

微孔抛光镜面加工计数详解

一般来说,对于小孔微孔进行抛光,传统的加工方法可能会导致孔洞磨损,或者加工效果不理想。

短视频内容管理助手有哪些?怎么好用

随着短视频的普及,越来越多的人开始将大量的时间和精力投入到短视频的制作和分享中。因

模具设计学习知识分享

今天,我想谈谈我在模具设计CAD方面的一些心得体会。作为一个从事这个行业多年的工程师,

seo优化排名软件详细介绍

1. SEMrush SEMrush,一款广受好评的SEO神器,被誉为业内最佳的SEO分析工具。功能包括全