List <string> getReaders(IntPtr hContext) { uint pcchReaders = 0; uint ret = NfcApi.SCardListReaders(hContext, null, null, ref pcchReaders); if (ret != NfcConstant.SCARD_S_SUCCESS) { return(new List <string>());//リーダーの情報が取得できません。 } byte[] mszReaders = new byte[pcchReaders * 2]; // 1文字2byte // Fill readers buffer with second call. ret = NfcApi.SCardListReaders(hContext, null, mszReaders, ref pcchReaders); if (ret != NfcConstant.SCARD_S_SUCCESS) { return(new List <string>());//リーダーの情報が取得できません。 } UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); string readerNameMultiString = unicodeEncoding.GetString(mszReaders); Debug.WriteLine("リーダー名を\\0で接続した文字列: " + readerNameMultiString); Debug.WriteLine(" "); List <string> readersList = new List <string>(); int nullindex = readerNameMultiString.IndexOf((char)0); // 装置は1台のみ readersList.Add(readerNameMultiString.Substring(0, nullindex)); return(readersList); }
List <string> getReaders(IntPtr hContext, bool isInit) { uint pcchReaders = 0; uint ret = NfcApi.SCardListReaders(hContext, null, null, ref pcchReaders); if (ret != NfcConstant.SCARD_S_SUCCESS) { return(new List <string>());//リーダーの情報が取得できません。 } byte[] mszReaders = new byte[pcchReaders * 2]; // 1文字2byte // Fill readers buffer with second call. ret = NfcApi.SCardListReaders(hContext, null, mszReaders, ref pcchReaders); if (ret != NfcConstant.SCARD_S_SUCCESS) { return(new List <string>());//リーダーの情報が取得できません。 } UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); string readerNameMultiString = unicodeEncoding.GetString(mszReaders); if (isInit) { //Debug.Log("【接続】リーダー名: " + readerNameMultiString); if (eventConnectDevice != null) { eventConnectDevice(readerNameMultiString); } } List <string> readersList = new List <string>(); int nullindex = readerNameMultiString.IndexOf((char)0); // 装置は1台のみ readersList.Add(readerNameMultiString.Substring(0, nullindex)); return(readersList); }