ÒÔÏ¿ª·¢°üÖ§³Ök1ÌåÓýIDR-100U HIDÕû»ú¡¢IDR-M10¡¢IDR-M20¡¢IDR-M30µÈ¶à¹¦ÄÜÃâÇýϵÁÐÉí·ÝÖ¤ÔĶÁÆ÷¡¢Éç±£¿¨¶Á¿¨Æ÷Õû»úºÍÄ£×éµÈ²úÆ·£¬¹©¿ª·¢ÈËÔ±ÊÊÓá£
Windowsƽ̨¿ª·¢°ü£¬°üÀ¨BS£¬C/S£¬Ö§³ÖUSBºÍ´®¿Ú£º
µã»÷ÕâÀïÏÂÔØ¡ý
Androidƽ̨¿ª·¢°ü£¬°üÀ¨USBºÍ´®¿Ú£º
µã»÷ÕâÀïÏÂÔØ¡ý
Linuxƽ̨¿ª·¢°ü£¬°üÀ¨USBºÍ´®¿Ú£º
µã»÷ÕâÀïÏÂÔØ¡ý
´®¿ÚÐÒ飬֧³Öµ¥Æ¬»úPLCµÈ¿ª·¢£º
µã»÷ÕâÀïÏÂÔØ¡ý
±¾ÎĵµÃèÊöÁËk1ÌåÓý¶à¹¦ÄÜÉí·ÝÖ¤ÔĶÁÆ÷SDKµÄº¯Êý¶¨Òå¡¢µ÷Ó÷½·¨¡¢²ÎÊýÒÔ¼°·µ»ØÖµËµÃ÷£¬¹©¿ª·¢ÈËÔ±½øÐжþ´Î¿ª·¢Ê±Ê¹Óá£EU¿ªÍ·µÄÊǽӴ¥¿¨£¬PEU¿ªÍ·µÄÊǷǽӿ¨¡£
º¯ÊýÔÐÍ£ºlong WINAPI EU_Reader_Open(char* dev_Name);
²ÎÊý£º[IN] dev_Name£º¹Ì¶¨Öµ ¡°USB1¡±.
·µ»ØÖµ£ºÁ¬½Ó³É¹¦Ê±·µ»Ø¾ä±úÖµ(´óÓÚ0)£¬¸ÃÖµÐè±£´æ×÷ΪÆäËûº¯ÊýµÄÈë²Î¡£
º¯ÊýÔÐÍ£ºlong WINAPI EU_Reader_Close(long ReaderHandle);
²ÎÊý£ºReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
·µ»ØÖµ£ºÎÞ
º¯ÊýÔÐÍ£ºlong WINAPI EU_PosBeep(long ReaderHandle, unsigned char time);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Time£º[IN] ·äÃùʱ¼ä£¬0~10
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
3.1.4ÌìÏß¿ª¹Ø
long WINAPI PEU_Reader_RFControl(long ReaderHandle,short type);
//type=0 ¹Ø±ÕÌìÏß type=1 ´ò¿ªÌìÏß
º¯ÊýÔÐÍ£º
long WINAPI EU_Reader_pre_PowerOn(long ReaderHandle,unsigned char EU_Slot_No,unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
EU_Slot_No£º[IN]¿¨×ùºÅ(ÈçÏÂ)
0x01:´ó¿¨×ù
0x11~0x14£ºSAM1~SAM4¿¨×ù
Response£º[OUT]Éϵ緵»ØµÄATR
·µ»ØÖµ£º³É¹¦·µ»ØATRµÄ³¤¶È,<= 0±íʾʧ°Ü¡£
º¯ÊýÔÐÍ£ºlong WINAPI EU_Reader_Application(long ReaderHandle,unsigned char EU_Slot_No, long Lenth_of_Command_APDU,unsigned char* Command_APDU, unsigned char* Response_APDU);
²ÎÊý£º
ReaderHandle£º [IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
EU_Slot_No£º [IN]¿¨×ùºÅ£¬Í¬Éϵ縴λ
Lenth_of_Command_APDU£º [IN]APDUÃüÁ¶È
Command_APDU£º [IN]APDUÃüÁî
Response_APDU£º [OUT]ÏìÓ¦Êý¾Ý
·µ»ØÖµ£º
³É¹¦·µ»ØÏìÓ¦Êý¾ÝµÄ³¤¶È£¬<= 0±íʾʧ°Ü
¶ÁÉç±£¿¨
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_SICARD(long ReaderHandle, char* SBKH, char *XM, char *XB, char *MZ, char *CSRQ, char *SHBZHM, char *FKRQ, char *KYXQ,char* ErrMsg);
²ÎÊý£º
ReaderHandle£º[IN] Openº¯ÊýµÄ·µ»ØÖµ
SBKH£º [OUT]Éç±£¿¨¿¨ºÅ
XM£º [OUT]ÐÕÃû
XB£º [OUT]ÐÔ±ð
MZ£º [OUT]Ãñ×å
CSRQ£º [OUT]³öÉúÈÕÆÚ
SHBZHM£º [OUT]Éí·ÝÖ¤ºÅ
FKRQ£º [OUT]·¢¿¨ÈÕÆÚ
FKRQ£º [OUT]¿¨ÓÐЧÆÚ
ErrMsg£º[OUT]´íÎóÐÅÏ¢
·µ»ØÖµ£º³É¹¦·µ»Ø0
º¯ÊýÔÐÍ£º long WINAPI PEU_Reader_SetTypeA(long ReaderHandle);
long WINAPI PEU_Reader_SetTypeB(long ReaderHandle);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
·µ»ØÖµ£º³É¹¦·µ»Ø0
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Request(long ReaderHandle);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
·µ»ØÖµ£º³É¹¦·µ»Ø0
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_anticoll(long ReaderHandle,unsigned char *uid);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Uid£º[OUT] ¿¨Æ¬ÎïÀí¿¨ºÅ£¬4×Ö½Ú
·µ»ØÖµ£º³É¹¦·µ»Ø0
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Select(long ReaderHandle,unsigned char cardtype);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Cardtype£º[IN]0x41±íʾTypeA/M1£¬0x42±íʾTypeB
·µ»ØÖµ£º³É¹¦·µ»Ø0
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_PowerOnTypeA(long ReaderHandle,unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Response£º[OUT]Éϵ緵»ØÊý¾Ý£¨ATS£©
·µ»ØÖµ£º³É¹¦·µ»ØATS³¤¶È£¬<= 0±íʾʧ°Ü¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Application(long ReaderHandle, long Lenth_of_Command_APDU,unsigned char* Command_APDU, unsigned char* Response_APDU);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Lenth_of_Command_APDU£º [IN]APDUÃüÁ¶È
Command_APDU£º [IN]APDUÃüÁî
Response_APDU£º [OUT]ÏìÓ¦Êý¾Ý
·µ»ØÖµ£º
³É¹¦·µ»ØÏìÓ¦Êý¾ÝµÄ³¤¶È£¬<= 0±íʾʧ°Ü
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Authentication_Pass(long ReaderHandle,unsigned char Mode, unsigned char SecNr,unsigned char *PassWord);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Mode£º [IN]ÒªÈÏÖ¤µÄKeyÀàÐÍ£¬0x60±íʾKeyA£¬0x61±íʾKeyB¡£
Secnr£º [IN]ÉÈÇøºÅ£¬S50¿¨·¶Î§£º0~15¡¢S70¿¨·¶Î§0~63
Key£º [IN]ÃØÔ¿£¬6×Ö½Ú
·µ»ØÖµ£º·µ»Ø0±íʾ³É¹¦£¬ÆäËûֵʧ°Ü¡£
//±¸Óú¯Êý
long WINAPI PEU_Reader_Authentication_PassHEX(long ReaderHandle,unsigned char Mode, unsigned char SecNr,char *PassWord);//ÈÏÖ¤ÃÜÔ¿M1 ´øÃÜÔ¿²ÎÊý
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Read(long ReaderHandle,unsigned char Addr,unsigned char *Data);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Addr£º [IN]¿éµØÖ·S50¿¨£º0~63¡¢S70¿¨£º0~255
Response£º [OUT]¶Á³öµÄ¿¨Êý¾Ý£¬16×Ö½Ú
·µ»ØÖµ£º³É¹¦·µ»Ø0£¬ÆäËüֵʧ°Ü¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Write(long ReaderHandle,unsigned char Addr,unsigned char *Data);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Addr£º [IN]¿éµØÖ·S50¿¨£º0~63¡¢S70¿¨£º0~255
Data£º [IN]´ýдÈëµÄ¿¨Êý¾Ý£¬16×Ö½Ú
·µ»ØÖµ£º³É¹¦·µ»Ø0£¬ÆäËüֵʧ°Ü¡£
º¯ÊýÔÐÍ£º
long WINAPI PEU_Reader_ReadIDMsg(long ReaderHandle,
const char* pBmpFile,
char *pName,
char *pSex,
char *pNation,
char *pBirth,
char *pAddress,
char *pCertNo,
char *pDepartment ,
char *pEffectData,
char *pExpire,
char * pErrMsg);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
pBmpFile£º [IN]ÒªÉú³ÉÕÕÆ¬µÄ·¾¶,Àý£º¡±D:\\zp.bmp¡±
pName£º [OUT]ÐÕÃû£¬50×Ö½Ú
pSex£º [OUT]ÐÔ±ð£¬10×Ö½Ú
pNation£º [OU]Ãñ×壬10×Ö½Ú
pBirth£º [OUT]³öÉúÈÕÆÚ£¬30×Ö½Ú
pAddress£º [OUT]¼Òͥסַ£¬100×Ö½Ú
pIDNo£º [OUT]Éí·ÝºÅ£¬50×Ö½Ú
pDepartment£º [OUT]Ç©·¢»ú¹Ø£¬50
pEffectDate£º [OUT]ÓÐЧÆðʼÈÕÆÚ£¬30×Ö½Ú
pExpireDate£º [OUT]ÓÐЧ½ØÖ¹ÈÕÆÚ£¬30×Ö½Ú
pErrMsg£º [OUT]´íÎóÌáʾ£¬50×Ö½Ú
·µ»ØÖµ£º¶Á¿¨³É¹¦·µ»Ø0
º¯ÊýÔÐÍ£º
long WINAPI PEU_Reader_ReadIDCard(long ReaderHandle, char * pErrMsg);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
pErrMsg£º [OUT]´íÎóÌáʾ£¬50×Ö½Ú
·µ»ØÖµ£º¶Á¿¨³É¹¦·µ»Ø0£¬¶Á¿¨³É¹¦ºó¿Éµ÷ÓÃÏÂÎÄgetº¯Êý»ñÈ¡ÐÅÏ¢
PEU_Reader_ReadIDCardFp£¨ÎÄ×Ö+ÕÕÆ¬+Ö¸ÎÆ£©
º¯ÊýÔÐÍ£º
long WINAPI PEU_Reader_ReadIDCardFp(long ReaderHandle, char * pErrMsg);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
pErrMsg£º [OUT]´íÎóÌáʾ£¬50×Ö½Ú
·µ»ØÖµ£º¶Á¿¨³É¹¦·µ»Ø0£¬¶Á¿¨³É¹¦ºó¿Éµ÷ÓÃÏÂÎÄgetº¯Êý»ñÈ¡ÐÅÏ¢
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_ID_ReadUID(long ReaderHandle,unsigned char* UID);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Response£º[OUT]Éí·ÝÎïÀíIDºÅ£¬16×Ö½Ú×Ö·û´®
·µ»ØÖµ£º³É¹¦·µ»Ø0£¬ÆäËüֵʧ°Ü¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_ID_Request(long ReaderHandle);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
·µ»ØÖµ£º³É¹¦·µ»Ø0£¬ÆäËüֵʧ°Ü¡£
º¯Êý | »ñÈ¡ÐÅÏ¢¹¦ÄÜ | °üº¬Ö¤¼þÀàÐÍ |
int WINAPI GetCardType(); | »ñȡ֤¼þÀàÐÍ 0£º¾ÓÃñÉí·ÝÖ¤ 1£ºÍâ¹úÈËÓÀ¾Ã¾ÓÁôÖ¤ 2£º¸Û°Ą̈¾ÓÃñ¾Óס֤ | |
int WINAPI GetName(char* pName); | ÐÕÃû(ÀàÐÍΪ1ʱ±íʾ£ºÍâ¹úÈËÖÐÎÄÐÕÃû) | 0¡¢1¡¢2 |
int WINAPI GetSex(char* pSex); | ÐÔ±ð | 0¡¢1¡¢2 |
int WINAPI GetNation(char* pNation); | Ãñ×å | 0 |
int WINAPI GetBirth(char* pBirth); | ³öÉúÈÕÆÚ | 0¡¢1¡¢2 |
int WINAPI GetAddress(char* pAddress); | סַ | 0¡¢2 |
int WINAPI GetCertNo(char* pCertNo); | ¹«ÃñÉí·ÝÖ¤ºÅÂë(ÀàÐÍΪ1ʱ±íʾ£ºÍâ¹úÈ˾ÓÁôÖ¤ºÅÂë) | 0¡¢1¡¢2 |
int WINAPI GetDepartemt(char* pDepartemt); | Ç©·¢»ú¹Ø | 0¡¢2 |
intWINAPI GetEffectDate(char* pEffectDate); | ÓÐЧÆðʼÈÕÆÚ | 0¡¢1¡¢2 |
int WINAPI GetExpireDate(char* pExpireDate); | ÓÐЧ½ØÖ¹ÈÕÆÚ | 0¡¢1¡¢2 |
int WINAPI GetBmpFileData(char* pBmpFileData); | bmp¸ñʽÕÕÆ¬Êý¾Ý | 0¡¢1¡¢2 |
int WINAPIGetBmpFile(char* pBmpfilepath); | Éú³ÉÕÕÆ¬£¬Èë²Î²Î¿¼ÎÄÖÐ3.4.1 | 0¡¢1¡¢2 |
int WINAPI IsFingerExist(); | ÊÇ·ñº¬´æÔÚÖ¸ÎÆÐÅÏ¢£º ´æÔÚʱ·µ»Ø512»òÕß1024 ²»´æÔÚʱ·µ»Ø0 | 0¡¢2 |
int WINAPIGetFingerprint(unsigned char* fpInfo); | »ñÈ¡Ö¸ÎÆÊý¾Ý£º ³É¹¦Ê±·µ»Ø»ñÈ¡µ½µÄ×Ö½Ú³¤¶È | 0¡¢2 |
int WINAPI GetEnName(char* pEnName); | Íâ¹úÈËÓ¢ÎÄÐÕÃû | 1 |
int WINAPI GetNationalityCode(char* pNationalityCode); | Íâ¹úÈ˹ú¼®´úÂ룬·ûºÏGB/T2659-2000¹æ¶¨ | 1 |
int WINAPI GetTXZHM(char* pTXZHM); | ¸Û°Ą̈ͨÐÐÖ¤ºÅÂë | 2 |
int WINAPI GetTXZQFCS(char* pTXZQFCS); | ¸Û°Ą̈ͨÐÐ֤ǩ·¢´ÎÊý | 2 |
×¢£ºÒÔÉϺ¯ÊýÐëÔÚ ¡°PEU_Reader_ReadIDCard¡± º¯ÊýÖ´Ðгɹ¦Ö®ºóµ÷Ó㬷ñÔò»ñÈ¡²»µ½ÓÐЧÐÅÏ¢¡£ |
º¯ÊýÔÐÍ£ºlong WINAPI EU_Reader_GetSAMID(long ReaderHandle,char *SAMID);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
SAMID£º [OUT]·µ»ØµÄÊý¾Ý
·µ»ØÖµ£º0±íʾ³É¹¦£¬ÆäËü±íʾʧ°Ü¡£
º¯ÊýÔÐÍ£ºlong WINAPI Rcard(long ReaderHandle,unsigned char ctime,int track,unsigned char *rlen,unsigned char *getdata);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
ctime£º [IN]³¬Ê±Ê±¼ä£¬µ¥Î»£ºÃë
track£º [IN]´ÅµÀ£¨1~3£©´ÅµÀ1~~´ÅµÀ3£¬track=4ʱ±íʾȫ¹ìÒ»´ÎÐÔË¢³ö£¬·µ»ØÊý¾ÝΪTLV¸ñʽ£¬ÀýÈ磺010101020201020303010203
rlen£º [OUT]·µ»ØÊý¾ÝµÄ³¤¶È
data£º [OUT]·µ»ØµÄÊý¾Ý
·µ»ØÖµ£º0±íʾ³É¹¦£¬ÆäËü±íʾʧ°Ü¡£
º¯ÊýÔÐÍ£ºlong WINAPI HexToStr(unsigned char *Src,int len,unsigned char *Des );
²ÎÊý£º
Src£º [IN]Ê®Áù½øÖÆÊý×é
Len£º [IN]Êý¾Ý³¤¶È
Des£º [OUT]ת»»ºÃµÄhexstr¸ñʽ×Ö·û´®¡£
·µ»ØÖµ£º·µ»Ø0
º¯ÊýÔÐÍ£ºlong WINAPI StrToHex(unsigned char *Src, int len,unsigned char *Des);
²ÎÊý£º
Src£º [IN]hexstr¸ñʽ×Ö·û´®
Len£º [IN]×Ö½Ú³¤¶È
Des£º [OUT]ת»»ºÃµÄÊý¾Ý
·µ»ØÖµ£º·µ»Ø×ª»»ºÃµÄÊ®Áù½øÖÆÊý¾Ý¡£
1 ÉèÖÃΪTypeA¿¨Æ¬
2 ÇëÇó¿¨Æ¬
3 ·ÀÅöײ
4 Ñ¡Ôñ¿¨Æ¬
5 Éϵç
6 APDU ÃüÁî
1 ÉèÖÃΪTypeB¿¨Æ¬
2 Éϵç
3 Ñ¡¿¨
4 APDU ÃüÁî
1 ÇëÇó¿¨Æ¬
2 ·ÀÅöײ
3 Ñ¡Ôñ¿¨Æ¬
4 ÈÏÖ¤ÃÜÔ¿
5 ¶Á»òд
1 Éϵ縴λ
2 APDU ÃüÁî
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_Inventory (long ReaderHandle,unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Response£º [OUT] Ѱ¿¨µÃµ½8×Ö½Ú¿¨Æ¬Êý¾Ý
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_SystemInfor(long ReaderHandle,unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
Response£º [OUT] µÃµ½14×Ö½Ú¿¨Æ¬Êý¾Ý
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_15693_Read (long ReaderHandle, unsigned char blk_add, unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
blk_add£º[IN] ¿éµØÖ·
Response£º [OUT] µÃµ½4×Ö½Ú¿¨Æ¬Êý¾Ý
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_15693_Write(long ReaderHandle, unsigned char blk_add, unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
blk_add£º[IN] ¿éµØÖ·
Response£º [IN] ҪдÈëµÄ4×Ö½Ú¿¨Æ¬Êý¾Ý
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_AFI(long ReaderHandle, unsigned char* data, unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
data£º[IN] data[0] Ϊ0±íʾдAFI,Ϊ1Ôò±íÊ¾ËøAFI£¬
data[0]Ϊ0ʱ data[1]ΪÓÐЧAFIÖµ¡£
Response£º [OUT] NULL.
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
º¯ÊýÔÐÍ£ºlong WINAPI PEU_Reader_DSFID(long ReaderHandle, unsigned char* data, unsigned char* Response);
²ÎÊý£º
ReaderHandle£º[IN] EU_Reader_Openº¯ÊýµÄ·µ»ØÖµ
data£º[IN] data[0] Ϊ0±íʾдDSFID,Ϊ1Ôò±íÊ¾ËøAFI£¬
data[0]Ϊ0ʱ data[1]ΪÓÐЧDSFIDÖµ¡£
Response£º [OUT] NULL.
·µ»ØÖµ£º³É¹¦·µ»Ø0¡£
£¨*ÓÉÓÚ²úÆ·Éý¼¶»òÆäËûÔÒò£¬k1ÌåÓýIDR-100U¶à¹¦ÄÜÉí·ÝÖ¤ÔĶÁÆ÷Windows/Android/Linux¿ª·¢°üÏÂÔØ²úƷʵ¼Ê²ÎÊýÓпÉÄܱä¸ü£¬ÒÔʵ¼Ê²úƷΪ׼¡£±¾ÎÄÖеÄËùÓгÂÊö¡¢ÐÅÏ¢ºÍ½¨ÒéÒ²²»¹¹³ÉÈκÎÃ÷ʾ»ò°µÊ¾µÄµ£±££©