<a href="http://blog.csdn.net/xiaoxiao108/archive/2011/04/01/6294067.aspx"></a>

前段时间母亲手机遭贼了,以防万一,如果自己手机丢了,肯定会更郁闷,记得很多手机有防盗功能,如果更换了sim卡就会,手机就会自动把新的

sim卡手机号,gps坐标,什么的发送到绑定的手机上。网上查了下资料,这类这类软件也挺多的。看了看功能也不是很复杂,就自己写了个玩玩

开发环境 vs2008 wm6 .net cf 3.5

实现方法很简单<br>
1.每一个sim都有唯一的一个IMSI编号,可以根据IMSI编号来判断手机是否更换sim卡<br>
2.如果检测到IMSI不是自己的sim卡的,可以确定其他人可能在用你的手机。<br>
3.每次开机程序自动运行,检测到别人如果使用你的手机,自动把他的通话记录,跟gps坐标发送到绑定好的手机号上。<br>
4.知道用你手机人的手机号,最近通话记录,gps坐标后,再自己想办法找到这人吧。

具体代码<br>
1.取sim卡IMSI编号<br>
使用 TapiLib.dll类库中的ControlTapi.GetIMSINumber()取到sim卡imsi编号<br>
2.判断是不是自己的sim卡<br>
string simStr=ControlTapi.GetIMSINumber();<br>
if (simStr.Length != 0)<br>
{<br>
if (simStr != SIM)<br>
{<br>
其中SIM为事先取好的自己手机卡的IMSI编号

3.取最近通话记录代码<br>
[StructLayout(LayoutKind.Sequential)]<br>
public struct CALLLOGENTRY<br>
{<br>
public UInt32 cbSize;<br>
public UInt64 ftStartTime;<br>
public UInt64 ftEndTime;<br>
public short iom;

public bool fOutgoing;<br>
public bool fConnected;<br>
public bool fEnded;

public bool fRoam;<br>
public short cidt;<br>
public IntPtr pszNumber;<br>
public IntPtr pszName;<br>
public IntPtr pszNameType;<br>
public IntPtr pszNote;<br>
};<br>
[DllImport("phone.dll", EntryPoint = "PhoneOpenCallLog", SetLastError = true)] //首先要PhoneOpenCallLog打开通话记录句柄<br>
private static extern int PhoneOpenCallLog(ref IntPtr pHandle);

<br>
[DllImport("phone.dll", EntryPoint = "PhoneCloseCallLog", SetLastError = true)] //要调用PhoneCloseCallLog关闭句柄<br>
private static extern int PhoneCloseCallLog(IntPtr pHandle);

<br>
[DllImport("phone.dll", EntryPoint = "PhoneGetCallLogEntry", SetLastError = true)]<br>
private static extern int PhoneGetCallLogEntry(IntPtr pHandke, ref CALLLOGENTRY pEntry);<br>
//用PhoneGetCallLogEntry方法会返回一个通话记录结构,在该结构中,包含号码、姓名、通话开始时间、通话结束时间等信息。

<br>
private string GetLog()<br>
{<br>
string CallInfo = "";

try<br>
{<br>
IntPtr handle = IntPtr.Zero; //句柄

CALLLOGENTRY entry = new CALLLOGENTRY();<br>
PhoneOpenCallLog(ref handle); //首先要PhoneOpenCallLog打开通话记录句柄<br>
entry.cbSize = (uint)Marshal.SizeOf(entry); //返回类的非托管大小

if (handle != IntPtr.Zero)<br>
{<br>
while (PhoneGetCallLogEntry(handle, ref entry) == 0) //获取通话记录<br>
{ //Marshal.PtrToStringUni 复制指定数目的字符<br>
string phoneNumber = Marshal.PtrToStringUni(entry.pszNumber); //号码<br>
string name = Marshal.PtrToStringUni(entry.pszName); //姓名

if (phoneNumber == null)<br>
{<br>
phoneNumber = string.Empty;<br>
}

if (name == null)<br>
{<br>
name = string.Empty;<br>
}

string temp = (phoneNumber.Trim() + name.Trim());<br>
CallInfo = CallInfo + temp;<br>
}<br>
PhoneCloseCallLog(handle);

if (CallInfo.Length < 140)<br>
{<br>
return CallInfo;<br>
}<br>
else<br>
{<br>
return CallInfo.Substring(0,140);<br>
}<br>
}<br>
else<br>
{<br>
int error = Marshal.GetLastWin32Error();<br>
return "";<br>
}<br>
}<br>
catch (Exception ep)<br>
{<br>
//MessageBox.Show(ep.ToString());<br>
return "";<br>
}<br>
finally<br>
{<br>
}<br><br>
}<br>
4.取gps坐标代码<br>
GpsDeviceState device = null;<br>
GpsPosition position = null;<br>
Gps gps = new Gps();

void gps_DeviceStateChanged(object sender, DeviceStateChangedEventArgs args)<br>
{<br>
device = args.DeviceState;<br>
}

protected void gps_LocationChanged(object sender, LocationChangedEventArgs args)<br>
{<br>
position = args.Position;<br>
str = "";<br>
if (position != null)<br>
{<br>
//维度<br>
if (position.LatitudeValid)<br>
{<br>
str += position.Latitude;<br>
}<br>
//经度<br>
if (position.LongitudeValid)<br>
{<br>
str += " " + position.Longitude;

5.发送短信代码<br>
SmsMessage msg = new SmsMessage(PHONE, str);<br>
msg.Send();<br>
6.打包为开机启动程序<br>
打包cab文件时,只需把快捷方式添加到Startup文件夹下面就ok。

不足之处。<br>
1.gps代码根据sdk中修改的,只是卫星定位的,根据基站定位的代码不知如何实现,只有当使用手机的人走到卫星信号好的地方时才能把坐标发

出去<br>
2.发送的gps坐标 ,只是一个大体的位置,几百米以内的范围,有些浮动<br>
3.如果手机被恢复出厂设置,或者被刷机,程序肯定不能运行了

即使gps信号不好的情况下只是得到使用手机人的电话号码,跟通话记录,用处也是挺大的。代码只是写着玩的,提供下参考思路代码

如果你发现有什么不合理的,需要改进的地方,或者你有什么更好的实现方法<span style="font-family: 'lucida Grande',Verdana; font-size: 14px; line-height: 23px;">邮件联系328452421@qq.com(qq常年不在线,邮件联系)</span><a href="mailto:328452421@qq.com"></a> 朱晓 (泰山学院)。相互交流 谢谢

源码下载地址 [url=http://download.csdn.net/source/3239409]http://download.csdn.net/source/3239409[/url]

<a href="http://blog.csdn.net/xiaoxiao108/archive/2011/04/01/6294067.aspx"></a>

手机防盗软件实现(源码)相关推荐

  1. 分享一个Symbian手机防盗软件源码

    http://download.csdn.net/source/2135024 几年前看到Symbian上流行一种手机防盗软件,一时手痒自己也研做了个,前几天从硬盘旮旯里又找到了,有兴趣的可以下载看看 ...

  2. HTML5响应式手机模板:电商网站设计——仿淘宝手机app界面模板源码 HTML+CSS+JavaScript...

    HTML5响应式手机模板:电商网站设计--仿淘宝手机app界面模板源码 HTML+CSS+JavaScript 手机电商模板 手机网站模板 企业手机网站模板 手机网站模板 手机模板 响应式手机网站 h ...

  3. java毕业设计手机在线销售系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计手机在线销售系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计手机在线销售系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S ...

  4. 单片机毕设 RFID门禁防盗报警系统(源码+论文)

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 射频识别 3.1 射频识别技术 3.2 射频识别模块 3.2.1 RFID模块 3.2.2 RFID模块组成 4 系统设计 4.1 系统架构 ...

  5. 2017最新鑫众游戏大厅源码架设和全套手机版运营级别源码下载

    一. 源码包编译安装部署web服务器 1.安装nginx必须的依赖包 [root@test01 ~]# yum -y install gcc openssl-devel pcre-devel zlib ...

  6. stm32毕设分享 RFID门禁防盗报警系统(源码+论文)

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 射频识别 3.1 射频识别技术 3.2 射频识别模块 3.2.1 RFID模块 3.2.2 RFID模块组成 4 系统设计 4.1 系统架构 ...

  7. stm32毕设 RFID门禁防盗报警系统(源码+论文)

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 射频识别 3.1 射频识别技术 3.2 射频识别模块 3.2.1 RFID模块 3.2.2 RFID模块组成 4 系统设计 4.1 系统架构 ...

  8. 物联网毕设分享 RFID门禁防盗报警系统(源码+论文)

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 射频识别 3.1 射频识别技术 3.2 射频识别模块 3.2.1 RFID模块 3.2.2 RFID模块组成 4 系统设计 4.1 系统架构 ...

  9. 物联网毕业设计 基于RFID门禁防盗报警系统(源码+论文)

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 射频识别 3.1 射频识别技术 3.2 射频识别模块 3.2.1 RFID模块 3.2.2 RFID模块组成 4 系统设计 4.1 系统架构 ...

最新文章

  1. ITIL管理思想的执行工具发布
  2. aws rds mysql 连接_AWS Lambda RDS MySQL数据库连接接口
  3. 全卷积神经网路【U-net项目实战】论文中U-Net网络实现
  4. nRF52832 — 连接指定name、UUID、addr的蓝牙设备
  5. POJ 3159 Candies
  6. WinUI 3 试玩报告
  7. Oracle11g修改实例名和数据库名
  8. 解决手动运行脚本执行正常而放入crontab后不正常的方法
  9. 如何向某网址Post信息,并得到CookieContainer以便以后直接通过验证
  10. 【编程好习惯】永远将头文件作为定义和引用的桥梁
  11. ArcGISEngine二次开发(1):系统基本功能
  12. 引用 使用Eclipse生成Java Doc
  13. java批处理框架 pdf_史上最轻松入门之Spring Batch - 轻量级批处理框架实践
  14. 教你如何鉴别iPhone翻新机!
  15. 主机连wifi的情况下如何使虚拟机(Ubuntu)上网
  16. PPT基础(三十)图片的特殊效果
  17. Attention 二 创新篇
  18. linux 开头是减号的文件名 如何进行文件操作 删除复制移动
  19. 11-散列1 电话聊天狂人分数 25作者 DS课程组单位 浙江大学
  20. C++之适配器(以优先队列为例)

热门文章

  1. linux cd-hit下载安装,教程 | 如何用cd-hit去除冗余序列?
  2. 力扣319——灯泡开关(数学)
  3. java计算机毕业设计网上投稿管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  4. Unity-脚本编译
  5. 基于javaweb的汽车配件管理系统
  6. 在海思和自己的板子上运行HI3519AV100 sample_venc
  7. tex编译时出现:Citation xxx on page xx undefined on input line,解决方法比较不同
  8. void和int函数的区别
  9. disabled属性
  10. Macbook prom1+android虚拟机+pycharm+pytest+appium 实现微信登录