如题。
------解决方案--------------------
不同的厂商,读取的方法是不相同的,建议你和厂商联系。
------解决方案--------------------
问问你们那做驱动的人,要不就问问搞modum的。他们有命令可以读出来,没有的话封装一个给你。
------解决方案--------------------
imsi我这有c的源码:您可以参考一下,如果有哪位大侠知道 手机型号(比如:多普达p800) 的获得方法,请不吝赐教下,小弟急用:)谢谢。
#define TAPI_API_LOW_VERSION 0x00010003 //TAPI_API版本信息
#define TAPI_API_HIGH_VERSION 0x00020000
#define EXT_API_LOW_VERSION 0x00010000
#define EXT_API_HIGH_VERSION 0x00010000
// CE手机平台的相关信息
typedef struct _Phoneinfo
{
LPTSTR tsSubscriberNumber;//imsi
LPTSTR tsManufacturer;//制造商
LPTSTR tsModel;//cpu型号
LPTSTR tsRevision;//无线协议版本
LPTSTR tsSerialNumber;//imei
// LPVARSTRING tsphoneID;
}Phoneinfo;
/////手机信息私有部分////////////////////////////////////////////////////////////////////////////////
//取得LineDeviceID
DWORD GetTSPLineDeviceID(const HLINEAPP hLineApp,
const DWORD dwNumberDevices,
const DWORD dwAPIVersionLow,
const DWORD dwAPIVersionHigh,
const TCHAR* const psTSPLineName)
{
DWORD dwReturn = 0xffffffff;
DWORD dwCurrentDevID = 0;
for(dwCurrentDevID; dwCurrentDevID < dwNumberDevices ; dwCurrentDevID++)
{
DWORD dwAPIVersion;
LINEEXTENSIONID LineExtensionID;
if(0 == lineNegotiateAPIVersion(hLineApp, dwCurrentDevID, //判断API版本
dwAPIVersionLow, dwAPIVersionHigh,
&dwAPIVersion, &LineExtensionID))
{
LINEDEVCAPS LineDevCaps;
LineDevCaps.dwTotalSize = sizeof(LineDevCaps);
if(0 == lineGetDevCaps(hLineApp, dwCurrentDevID,
dwAPIVersion, 0, &LineDevCaps))
{
BYTE* pLineDevCapsBytes = (BYTE *)malloc(LineDevCaps.dwNeededSize); //取得存储设备信息的结构体所需的空间大小
if(0 != pLineDevCapsBytes)
{
LINEDEVCAPS* pLineDevCaps = (LINEDEVCAPS*)pLineDevCapsBytes;
pLineDevCaps->dwTotalSize = LineDevCaps.dwNeededSize;
if(0 == lineGetDevCaps(hLineApp, dwCurrentDevID, //取得设备的一些信息
dwAPIVersion, 0, pLineDevCaps))
{
if(0 == _tcscmp((TCHAR*)((BYTE*)pLineDevCaps+pLineDevCaps->dwLineNameOffset),
psTSPLineName)) //取得设备id并比较是不是移动设备的id
{
dwReturn = dwCurrentDevID;
}
}
free(pLineDevCapsBytes);
pLineDevCapsBytes = NULL;
}
}
}
}
return dwReturn;
}
//取得关于手机的各种信息
BOOL GetPhoneInfo(Phoneinfo *phoneinfo)
{
DWORD dwNumDevs;
DWORD dwAPIVersion = TAPI_API_HIGH_VERSION;
LINEINITIALIZEEXPARAMS liep;
HLINEAPP hLineApp = 0;
HLINE hLine = 0;
DWORD dwExtVersion;
LPBYTE pLineGeneralInfoBytes = NULL;
DWORD dwTAPILineDeviceID;
const DWORD dwMediaMode = LINEMEDIAMODE_DATAMODEM | LINEMEDIAMODE_INTERACTIVEVOICE;
LINEGENERALINFO lviGeneralInfo;
LPLINEGENERALINFO plviGeneralInfo;
// set the line init params
liep.dwTotalSize = sizeof(liep);
liep.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT;
if (lineInitializeEx(&hLineApp, 0, 0, TEXT("ExTapi_Lib"), //初始化
&dwNumDevs, &dwAPIVersion, &liep))
{
goto cleanup;
}
// get the device ID
dwTAPILineDeviceID = GetTSPLineDeviceID(hLineApp, dwNumDevs, //取得当前连接的移动设备id
TAPI_API_LOW_VERSION,
TAPI_API_HIGH_VERSION,