IMEI即International Mobile Equipment Identity(國際移動(dòng)設備身份)的簡(jiǎn)稱(chēng),每一個(gè)手機具有唯一IMEI號,用途識別手機,IMEI碼一般由15位數字組成,一般的GSM手機按下“*#06#”,IMEI碼就會(huì )顯示出來(lái)。
IMSI即國際移動(dòng)用戶(hù)識別碼,在GSM系統中,給每個(gè)移動(dòng)用戶(hù)分配一個(gè)唯一的國際用戶(hù)識別碼IMSI,此碼在網(wǎng)中所有位置包括漫游區都是有效的。在我們所使用的手機SIM卡中是不保留手機號的,而是保留IMSI號。
下面介紹如何在程序中獲得IMEI號:
void IMEIRILNotifyProc(DWORD dwNotifyCode, const void* pData, DWORD dwDataSize, DWORD dwParam)
{
}
// **************************************************************************
// 函數名: IMEIRILResultProc
// 函數作用:
// 參數說(shuō)明:
// 返回值說(shuō)明:
// **************************************************************************
void IMEIRILResultProc(DWORD dwResultCode, HRESULT hrCommandID, const void* pData, DWORD dwDataSize, DWORD dwParam)
{
if(RIL_RESULT_OK == dwResultCode)
{
RILEQUIPMENTINFO* pEquipmentInfo=(RILEQUIPMENTINFO*)pData;
memcpy(g_ssid,(char*)pEquipmentInfo->szSerialNumber,14);
SetEvent(hIMEIEvent);
}
}
// **************************************************************************
// 函數名: GetServingsCode
// 函數作用: 獲得IMSI號
// 參數說(shuō)明: 無(wú)
// 返回值說(shuō)明: TRUE:成功
// FALSE:失敗
// **************************************************************************
BOOL GetServingsCode()
{
HRIL m_hRil;
HRESULT hResult = RIL_Initialize(
1,
IMEIRILResultProc,
IMEIRILNotifyProc,
RIL_NCLASS_SUPSERVICE,
0,
&m_hRil);
HRESULT hr = RIL_GetEquipmentInfo(m_hRil);
if(FAILED(hr))
{
RIL_Deinitialize( m_hRil);
return FALSE;
}
else
{
hIMEIEvent=CreateEvent(NULL, FALSE, FALSE, NULL);
DWORD dwWait = WaitForSingleObject(hIMEIEvent,60000);
if (WAIT_OBJECT_0 == dwWait)
{
RIL_Deinitialize( m_hRil);
CloseHandle(hIMEIEvent);
return TRUE;
}
else
{
RIL_Deinitialize( m_hRil);
CloseHandle(hIMEIEvent);
return FALSE;
}
}
}
獲得IMSI方法與獲得IMEI號方法相同,只是將函數RIL_GetEquipmentInfo換為RIL_GetUserIdentity
本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/woxinfei/archive/2008/05/05/2394221.aspx