none
請問如何讀取sim卡上的電話簿?? RRS feed

  • 問題

  • hi  各位前輩好

     

    這幾天使用poom的方式可以成功取得裝置上的連絡人資料,但發現插上sim卡後,我的程式取不到那些sim卡上的連絡人資料,找了msdn,有看到wm6的includesim.. ,想請問在2003平台及wm5上有什麼方法可作??

    我是用vs2005+C++,ppc和smartphone都要可以用。

     

    希望多多指導,謝謝您!!

    2007年11月27日 上午 03:48

所有回覆

  • HI,

     

    大約是類似以下的做法:

    HRESULT hr = S_OK;

    HSIM hSim = NULL;

    BYTE bdata[256];

    DWORD dwBytesRead = 0;

    hr = SimInitialize(0, NULL, 0, &hSim);

    if(FAILED(hr))

    ;//Bail

    SIMRECORDINFO recordInfo;

    //First DF: DF_PHONEBOOK

    DWORD dwAddress = 0x5F3A;

    memset(&recordInfo, 0, sizeof(SIMRECORDINFO));

    recordInfo.cbSize = sizeof(SIMRECORDINFO);

    hr = SimGetRecordInfo(hSim, dwAddress, &recordInfo);

    if(FAILED(hr))

    ;//Bail

    hr = SimReadRecord(hSim, dwAddress, recordInfo.dwRecordType, 0, bdata, sizeof(bdata), &dwBytesRead);

    if(FAILED(hr))

    ;//Bail

    //New DF: DF_GSM_ACCESS

    dwAddress = 0x5F3B;

    hr = SimGetRecordInfo(hSim, dwAddress, &recordInfo);

    if(FAILED(hr))

    ;//Bail

    hr = SimReadRecord(hSim, dwAddress, recordInfo.dwRecordType, 0, bdata, sizeof(bdata), &dwBytesRead);

    if(FAILED(hr))

    ;//Bail

    SimDeinitialize(hSim);

     

    tihs

    2007年11月27日 上午 07:10
  • 謝謝 this大的回覆,好詳細的。

    不懂的地方是怎麼取其中一筆,比方想取其中一筆名為myphone的,該怎麼作??

    0x5F3A  0x5F3B  是作什麼的? 怎麼知道?

     

    另外我發現拿掉sim卡後,手機上的連絡人仍保有sim卡上的那些筆資料,只是不能編修,所以,請問如何取得這些筆資料??  用poom只能取得非sim卡上的,也就是手機上的連絡人。

    謝謝!!
    2007年11月29日 上午 06:24
  • HI,

     

    0x5F3A  0x5F3B是SIM CARD的位址. 好像沒有辦法利用指定名稱的方式讀取...

     

    tihs

    2007年11月30日 上午 09:27