亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用.NET智能版進行SIM編程

2019-11-17 04:39:41
字體:
來源:轉載
供稿:網友


  摘要:學習如何使用 SIM 治理器 API、Compact Framework 的 Interop 服務以及 .NET 開發環境來創建用于 Pocket PC Phone 的連接應用程序。(本文還包含英文鏈接。)
  下載 sim_PRogramming.exe  SIM 卡

  Pocket PC Phone 的內置電話功能使它成為移動電話家族的重要成員,在創建新的連接應用程序時,可以利用該功能。與所有移動電話一樣,Pocket PC 電話也需要用戶身份模塊 (SIM) 卡才能撥打電話(緊急電話除外,撥打緊急電話時無需 SIM 卡)。例如,連接應用程序可以通過在啟動連接之前檢查用戶的個人識別碼 (PIN) 代碼來利用 SIM 卡的安全功能?! IM 卡可以存儲移動電話的電話號碼以及提供此號碼的操作員的身份標識。另外,它還可以存儲附加有姓名的電話號碼以及多條短消息服務的消息。SIM 卡不僅具有存儲器,還具有使卡可以進行安全和加密處理的中心處理器。通常情況下,您需要使用 PIN 代碼“登錄”到 SIM 卡。  SIM 治理器 API

  在 Pocket PC Phone 中,您可以使用一系列 Windows CE API 調用(統稱為 SIM 治理器)來訪問 SIM 卡上的信息。以下為 SIM 治理器 API(按功能分組):表 1:SIM 治理器 API
使用.NET智能版進行SIM編程  會話以調用 SimInitialize 開始,這將返回一個 SIM 句柄,此后,在調用 SIM 治理器 API 函數時均需要此句柄。通過將此句柄傳遞給 SimDeinitialize 來終止會話?! ∈褂?Compact Framework 調用 Windows API

  使用 SDE (Smart Device Extensions) 和 Compact Framework,可以進行 Microsoft? Windows? API 調用,例如使用 Interop(erability) 服務訪問 SIM 治理器 API。
  SIM Anyplace 示例

  該示例是使用 Microsoft Visual Studio? .NET、C#、SDE 和 .NET CF 創建的 Pocket PC Phone 的示例應用程序。它展示了如何使用 SIM 治理器 API 訪問 SIM 卡。該應用程序包含一個窗體:  此示例的用途僅限于通過敲擊“獲取 SIM 信息”按鈕從 SIM 卡獲取一般信息。但是,通過使用此示例的結構可以將其用途擴展至包含更多的 SIM 治理器 API 功能?! 〈a演練

  要使用 Compact Framework 的 Interop 服務,需要添加以下代碼:using System.Runtime.InteropServices;  創建類 SIMWrap 來存儲 Windows API 的原型,該示例需要以下原型:[DllImport("cellcore.dll")]
public static extern int SimInitialize(uint dwFlags,
int lpfnCallBack, uint dwParam, ref int lphSim);[DllImport("cellcore.dll")]
public static extern int SimGetPhonebookStatus(int hSim,
uint dwLocation, ref uint lpdwUsed, ref uint lpdwTotal);[DllImport("cellcore.dll")]
public static extern int SimGetDevCaps(int hSim,
uint dwCapsType, ref SimCaps lpSimCaps);[DllImport("cellcore.dll")]
public static extern int SimGetSmsStorageStatus(int hSim,
uint dwStorage, ref uint lpdwUsed, ref uint lpdwTotal );[DllImport("cellcore.dll")]
public static extern int SimDeinitialize(int hSim);  每個原型均具有一個指向 DLL(動態鏈接庫,在其中執行函數)的 DllImport 屬性,在本例中為 cellcore.dll。創建這些原型時,Visual Studio .NET 幫助文件提供了一個包含類型映射的極好表格(請在索引中查找“平臺調用”和“數據類型”)。例如,本地類型“DWord”映射到治理類型“UInt32”,UInt32 為 C# 中的一個“單位”?! ∮糜讷@取 SIM 卡功能的調用 (SimGetDevCaps) 包含一個由引用 (lpSimCaps) 作為最后參數傳遞的結構。本地 (C++) 結構如下所示:typedef strUCt simcaps_tag {

DWORD cbSize;
DWORD dwParams;
DWORD dwPBStorages;
DWORD dwMinPBIndex;
DWORD dwMaXPBIndex;
DWORD dwMaxPBEAddressLength;
DWORD dwMaxPBETextLength;
DWORD dwLockFacilities;
DWORD dwReadMsgStorages;
DWORD dwWriteMsgStorages;
DWORD dwNumLockingPwdLengths;
SIMLOCKINGPWDLENGTH rgLockingPwdLengths[SIM_NUMLOCKFACILITIES];
} SIMCAPS, FAR *LPSIMCAPS;  當 SIM_NUMLOCKFACILITIES 等于 10 時,相同結構的 Compact Framework 版本如下所示:[StructLayout(LayoutKind.Sequential)]
public struct SimCaps
{
public uint cbSize;
public uint dwParams;
public uint dwPBStorages;
public uint dwMinPBIndex;
public uint dwMaxPBIndex;
public uint dwMaxPBEAddressLength;
public uint dwMaxPBETextLength;
public uint dwLockFacilities;
public uint dwReadMsgStorages;
public uint dwWriteMsgStorages;
public uint dwNumLockingPwdLengths;
public SimLockingPwdLength rgLockingPwdLengths0;
public SimLockingPwdLength rgLockingPwdLengths1;
public SimLockingPwdLength rgLockingPwdLengths2;
public SimLockingPwdLength rgLockingPwdLengths3;
public SimLockingPwdLength rgLockingPwdLengths4;
public SimLockingPwdLength rgLockingPwdLengths5;
public SimLockingPwdLength rgLockingPwdLengths6;
public SimLockingPwdLength rgLockingPwdLengths7;
public SimLockingPwdLength rgLockingPwdLengths8;
public SimLockingPwdLength rgLockingPwdLengths9;
}  請注重,即使 MarchalAsAttribute 類在 Compact Framework (Beta 1) 中不受支持,通過使用附加后綴 (0-9) 將陣列添加為成員幾乎可以實現相同的結構。實際上,這些成員屬于另一種結構 (SimLockingPwdLength)?! ÷暶鬟m當時,“獲取 SIM 信息”按鈕所表示的代碼如下所示:SimWrap.SimCaps simCaps = new SimWrap.SimCaps();
int hSim = 0;
uint phoneUsed = 0;
uint phoneTotal = 0;
uint smsUsed = 0;
uint smsTotal = 0;// 清空 ListView
lvwItems.Items.Clear();// 啟動 SIM 治理器會話(獲取句柄)
SimWrap.SimInitialize(0, 0, 0, ref hSim);// 獲取電話簿狀態(使用部分、全部)
SimWrap.SimGetPhonebookStatus(hSim, SimWrap.SIM_PBSTORAGE_SIM,
ref phoneUsed, ref phoneTotal);
AddToListView("Total phonebook size:", phoneTotal.ToString());
AddToListView("Phonebook entries:", phoneUsed.ToString());// 獲取 SIM 功能
SimWrap.SimGetDevCaps(hSim, SimWrap.SIM_CAPSTYPE_ALL, ref simCaps);
AddToListView("Max. length of name:",
simCaps.dwMaxPBETextLength.ToString());
AddToListView("Max. length of phone number:",
simCaps.dwMaxPBEAddressLength.ToString());// 獲取消息 (SMS) 狀態(使用部分、全部)
SimWrap.SimGetSmsStorageStatus(hSim, SimWrap.SIM_SMSSTORAGE_SIM,
ref smsUsed, ref smsTotal);
AddToListView("SMS message storage capacity:", smsTotal.ToString());
AddToListView("SMS messages:", smsUsed.ToString());// 結束 SIM 治理器會話
SimWrap.SimDeinitialize(hSim);  清空 ListView 且檢索 (SimInitialize) 到 SIM 治理器句柄 (hSim) 后,將調用 SIM Wrapper 類 (SimWrap) 上的每個靜態方法,從而產生 API 調用。作為引用傳遞的變量將獲取返回值,并使用代碼將其添加至 ListView 中。private void AddToListView(string Item, string Value)

{
ListViewItem lvi = new ListViewItem(Item);
lvi.SubItems.Add(Value);
lvwItems.Items.Add(lvi);
}  最后,在調用 SimDeinitialize 時將釋放 SIM 治理器句柄 (hSim)?! ⌒〗Y

  由于 Pocket PC Phone 是移動電話家族的重要成員,因此在創建大型的連接應用程序時可以利用其功能,例如 SIM 卡。使用 SIM 治理器 API、Compact Framework 的 Interop 服務以及 .NET 開發環境,可以獲得實現這一功能的工具。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
4p变态网欧美系列| 美日韩精品免费视频| 91欧美精品午夜性色福利在线| 91色精品视频在线| 亚洲精品久久久久中文字幕二区| 日韩在线高清视频| 丝袜美腿亚洲一区二区| 亚洲国产精品系列| 亚洲精品之草原avav久久| 亚洲精品www久久久久久广东| 欧美性猛交xxxx乱大交| 国产精品偷伦视频免费观看国产| 欧美黄色片视频| 国产精品白丝av嫩草影院| 亚洲老板91色精品久久| 久久99视频免费| 日韩精品免费在线观看| 91极品女神在线| 91久热免费在线视频| 亚洲人成电影在线| 91香蕉嫩草影院入口| 国产丝袜一区二区三区免费视频| 韩国v欧美v日本v亚洲| 国产精品va在线播放| 欧美激情小视频| 亚洲欧美日韩一区二区三区在线| 精品福利在线看| 国产精品久久久久久一区二区| 在线精品高清中文字幕| 欧美日韩在线免费观看| 日韩av中文在线| 欧美国产日韩一区二区| 狠狠色香婷婷久久亚洲精品| 欧美一区二区三区免费视| 亚洲综合小说区| 国产日韩欧美中文在线播放| 亚洲香蕉成视频在线观看| 午夜精品国产精品大乳美女| 一区二区欧美在线| 欧美一级淫片videoshd| 成人黄色在线播放| 欧美精品一区二区三区国产精品| 日本三级韩国三级久久| 亚洲影院污污.| 亚洲国产精品va| 少妇高潮 亚洲精品| 欧美一区视频在线| 国产免费久久av| 在线播放日韩欧美| 亚洲国产精品嫩草影院久久| 久久久亚洲成人| 欧美大片免费观看在线观看网站推荐| 久久精品久久久久| 欧美性色视频在线| 日韩电影中文字幕一区| 色综合亚洲精品激情狠狠| 国产精品一区二区三| 啊v视频在线一区二区三区| 亚洲qvod图片区电影| 精品久久久久久久中文字幕| 欧美超级乱淫片喷水| 97人人做人人爱| 欧美丰满老妇厨房牲生活| 久久精品精品电影网| 国产日产久久高清欧美一区| 一区二区三区四区在线观看视频| 国产精品极品美女在线观看免费| 日韩精品一区二区三区第95| 欧美一级黑人aaaaaaa做受| 久久久久久网址| 黄色成人在线免费| 亚洲www视频| 欧美一区亚洲一区| 国产99久久精品一区二区 夜夜躁日日躁| 日本亚洲欧洲色| 国产高清视频一区三区| xvideos亚洲| 亚洲韩国日本中文字幕| 国产精品白丝av嫩草影院| 国产精品久在线观看| 国产精品旅馆在线| 韩国三级电影久久久久久| 精品一区二区三区四区在线| 海角国产乱辈乱精品视频| 日韩精品视频在线免费观看| 国产99在线|中文| 亚洲午夜激情免费视频| 欧美在线观看一区二区三区| 亚洲人成网站色ww在线| 羞羞色国产精品| 国产成+人+综合+亚洲欧洲| 久久久国产精彩视频美女艺术照福利| 亚洲人av在线影院| 成人黄色av免费在线观看| 久久久女人电视剧免费播放下载| 国模精品视频一区二区三区| 亚洲免费福利视频| 欧美丰满片xxx777| 亚洲香蕉伊综合在人在线视看| 亚洲精品日韩欧美| 久久精品国产综合| 精品无人区太爽高潮在线播放| 日韩美女免费观看| 成人国内精品久久久久一区| 久久视频中文字幕| 2019av中文字幕| 亚洲japanese制服美女| 国产精品流白浆视频| 久久久www成人免费精品| 久久青草精品视频免费观看| 欧美性xxxxx极品| 欧美日韩爱爱视频| 亚洲精品自拍视频| 国产日韩欧美另类| 国产97人人超碰caoprom| 久久久久久国产免费| 97香蕉超级碰碰久久免费的优势| 色诱女教师一区二区三区| 亚洲自拍偷拍第一页| 久久久久久久久中文字幕| 亚洲日韩欧美视频一区| 国产精品www网站| 国产精品电影观看| 91精品一区二区| 国产日韩综合一区二区性色av| 91人人爽人人爽人人精88v| 亚洲九九九在线观看| 欧美老女人性生活| 色综合视频一区中文字幕| 菠萝蜜影院一区二区免费| 97视频com| 最近中文字幕mv在线一区二区三区四区| 九九热r在线视频精品| 亚洲精品之草原avav久久| 亚洲免费影视第一页| 在线观看日韩欧美| 中文字幕不卡av| 亚洲精品日韩丝袜精品| 尤物精品国产第一福利三区| 欧美丝袜一区二区| 欧美日韩午夜剧场| 中文字幕v亚洲ⅴv天堂| 欧美日韩ab片| 欧美激情videos| 久久久久免费精品国产| 亚洲最大成人在线| 欧美性猛交xxxx乱大交蜜桃| 日本91av在线播放| 精品久久久久久久久久久久久| 在线播放国产精品| 欧美性高潮在线| 国产精品专区h在线观看| 亚洲美女av在线| 欧美黑人一级爽快片淫片高清| 日韩欧美精品免费在线| 日韩国产中文字幕| 日韩国产欧美区| 成人黄色在线播放| 午夜剧场成人观在线视频免费观看| 中文字幕亚洲专区| 日韩精品999| 91亚洲国产成人久久精品网站| 日韩在线观看精品| 久久最新资源网|