📄 protocol802_11instancejni.cpp
字号:
jobject jobjectList= JniEnv->NewObject( jclassList, MethodId ); jmethodID jmethodAdd = JniEnv->GetMethodID( jclassList, "add", "(Ljava/lang/Object;)Z" ); InstanceObject * TheProtocol802_11Instance = (InstanceObject *) Get_nativeObjRef( JniEnv, JObject ); jclass jclassApStruct = JniEnv->FindClass( "com/intel/mobile/network/ApStruct" ); MethodId = JniEnv->GetMethodID( jclassApStruct, "<init>", "(IIIIIZ)V" ); IntelMobileChar data[1024]; IntelMobileChar* infoString = TheProtocol802_11Instance->InvokeMethod( IntelMobileText("ScanAps"), IntelMobileText("") ); strcpy( data, infoString ); delete infoString; IntelMobileChar line[256]; IntelMobileChar item[256]; IntelMobileChar itemitem[4]; IntelMobileString wstr; //=================== int iAuthenticationMode = 0; int iRssi = 0; IntelMobileChar szSsid[256]; int iBssid[6]; int iBand = 0; int iOperatingMode = 0; bool bEncrypted; unsigned int nChannel = 0; int iEncryptionMode = 0; //=================== IntelMobileChar* remain = strstr( data, IntelMobileText("<;>") ); while ( NULL != remain ) { size_t pos = remain - data + 1; strncpy( line, data, pos - 1 ); line[ pos -1 ] = 0; IntelMobileChar* itemremain; size_t itempos; itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, iAuthenticationMode ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; strcpy( szSsid, item ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, iRssi ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; int j = 0; IntelMobileChar* itemitemremain = strstr( item, IntelMobileText("<:>") ); unsigned char nBssidItem; while ( NULL != itemitemremain ) { size_t itemitempos = itemitemremain - item + 1; strncpy( itemitem, item, itemitempos - 1 ); itemitem[ itemitempos -1 ] = 0; wstr = itemitem; CStringHelper::Str2Param( wstr, nBssidItem ); iBssid[j++] = nBssidItem; strcpy( item, item+itemitempos+2 ); itemitemremain = strstr( item, IntelMobileText("<:>") ); } strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, iBand ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, iOperatingMode ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, bEncrypted ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, nChannel ); strcpy( line, line+itempos+2 ); itemremain = strstr( line, IntelMobileText("<,>") ); itempos = itemremain - line + 1; strncpy( item, line, itempos - 1 ); item[ itempos-1 ] = 0; wstr = item; CStringHelper::Str2Param( wstr, iEncryptionMode ); strcpy( line, line+itempos+2 ); jstring strSsid = BSTR2jstring( JniEnv, szSsid ); jobject jobjectApStruct = JniEnv->NewObject( jclassApStruct, MethodId, iAuthenticationMode, iRssi, strSsid, iBssid, iBand, iOperatingMode, bEncrypted, nChannel, iEncryptionMode); JniEnv->CallVoidMethod( jobjectList, jmethodAdd, jobjectApStruct ); strcpy( data, data+pos+2 ); remain = strstr( data, IntelMobileText("<;>") ); } return jobjectList; } catch (IntelMobileException Ex) { ThrowException( JniEnv, Ex ); } catch (...) { ThrowUnknownException( JniEnv, IntelMobileText("Protocol802_11Instance"), IntelMobileText("ScanAps()") ); } return NULL;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -