PPC丢失后,手机信息如何保护?(C#)
2011-01-06 10:58:51 来源:WEB开发网现在,好多人都开始使用Windows Phone了,其提供了个人信息管理功能十分强大,无奈的是,如果当我们过分依赖于这些辅助功能,那么一旦设备丢失或被盗(结果一样吧,哈哈),个人信息将遗漏无疑啊。所以,为了保护我们的个人信息,在这里写一个Sim卡识别程序,如果是非本人的SIM卡插入,则删除本机的相关个人信息,以防被盗!
首先,如何识别我们的Sim卡呢?它有一组20位(也许吧)的识别码,应该是比较全球唯一吧。而怎么去获得这个ID呢?这里用到一个P/V invoke技术,实际上就是使用cellcore.dll的Sim卡功能类SimInitialize等,用这些功能读出插在手机中的SIM卡的ID。
其次,应该在何种场合进行判断呢?其实大家因该有这种经验:WM的PPC一般不会关机,除非换电池和SIM卡。所以,我们的程序需要在机器开机的时候运行,而且最好不要有什么用户界面,所以,我选择新建一个智能设备的控制台项目,作为我们的开发环境。
当然,还是选用.net cf 2.0的环境,模拟器么,选择WM6吧。
至此,我们已经建立起一个项目,下面我们需要往其中加入代码,其中,核心代码如下:
SIM类
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace SmartDeviceProject1
{
public class SIM
{
#region 平台调用
[DllImport("cellcore.dll")]
public extern static int SimInitialize(int dwFlags, IntPtr lpfnCallback, int dwParam, ref IntPtr lphSim);
[DllImport("cellcore.dll")]
public extern static int SimDeinitialize(IntPtr hSim);
[DllImport("cellcore.dll")]
public extern static int SimReadRecord(IntPtr hSim, int dwAddress, int dwRecordType, int dwIndex, byte[] lpData, int dwBufferSize, ref int dwSize);
int EF_ICCID = 0x2fe2;
int SIM_RECORDTYPE_TRANSPARENT = 1;
#endregion
//返回Sim卡背面的20位ICCID
public string SimSerialNumber()
{
IntPtr hSim = default(IntPtr);
byte[] iccid = new byte[10];
更多精彩
赞助商链接