




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
手机防盗软件的实现_日志 总结 1、 关于SharedPreferences在android平台下用于保存数据有三种方式,1、SQLite 2、SharedPreferences 3、FileSharedPreferences是将数据保存在一个xml文件中,并且是以Map的形式保存,一个Key对应一个Value 但获取某一个Key的时候,都会有一个默认值,这个默认值是在xml不存在这个key值的时候使用a) 获得SharedPreferences :获得SharedPreferences是通过上下文(Context)中的getSharedPreferences方法获得。 SharedPreferences sp = this.getSharedPreferences(data, MODE_WORLD_READABLE); 第一个参数是指定xml文件的名字,当不存在的时候就会创建它。第二个参数是获得这个SharedPreferences的模式,一共有四种模式:MODE_APPEND 、MODE_PRIVATE、 MODE_WORLD_READABLE 、MODE_WORLD_WRITEABLEb) 从SharedPreferences中取值通过sp.getXXX的方式可以获得对应key的值,在getXXX的时候,需要指定一个默认的值,当key值不存在的时候使用c) 往d) ShaSharedPreferences中设值需要用到Editor Editor editor = sp.edit();获得了Editor之后,才能对SharedPreferences进行写editor.putXXX(“key”,value) 最后需要注意的一点是别忘了commite) Xml文件存放的位置位于data/data/包名/shared_prefs/xxx.xml2、 关于AlertDialog创建AlertDialog需要用到AlertDialog.Builder这个对象,对这个Builder做相应的设置,可以使AlertDialog有不同的展现 AlertDialog.Builder builder = new AlertDialog.Builder(this) builder.setTitle(“”);a) 创建普通的AlertDialogbuilder.setNegativeButton(xxx, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which);一共有三种Button:NegativeButton,PositiveButton,NeutralButton这三种Button默认的实现了点击之后消失AlertDialogb) 创建自定义布局的AlertDialog创建自定义布局的AlertDialog,需要一个布局文件,我们所需要做的就是将这个布局文件变成一个View对象,再将这个View对象设置到Builder里面去将布局文件变成一个View对象,需要用到LayoutInflater这个对象中的inflate方法LayoutInflater inflater = LayoutInflater.from(this);View view = inflater.inflate(R.layout.showpassworddialog, null);之后再builder.setView(view)就可以将自定义的布局文件放到Dialog里面去了在这个自定义的布局文件中,我们也是可以取到里面定义的控件,通过view.findViewById() 就可以找到自定义布局文件中的相应控件,之后就可以设置或者做事件的监听AlertDialog dialog = builder.create();dialog.show();3、 TelephonyManager获取SIM卡信息。在SIM卡中并没有保存用户的手机,区分每一张SIM是通过IMSI码。在运营商的数据库中存在手机号码和IMSI码的映射,所以手机是通过发送IMSI码到运营商的一端,获得自己的手机号码。TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);/获取手机号码 一般是为空的,因为运营商没有基本没有把本机电话保存在SIM卡中 标识每一张SIM卡是通过IMSI码(tm.getSubscriberId(). /在运营商的数据库表中有IMSI码与电话号码的映射。所以,手机是通过发送IMSI码到运营商一端,才获得自己的手机号码 String phonenumber = tm.getLine1Number(); /获得每一张电话卡的唯一标识 IMIS码 String subscriberid = tm.getSubscriberId(); /获取手机的IMEI号码 国际移动设备识别码是区别移动设备的标志 String deviceId = tm.getDeviceId(); /获取国际的国家编码 中国:cn String networkiso = tm.getNetworkCountryIso(); /获取网络的MCC+MNC编码 中国电信天翼460003 中国移动46000 String networkoper = tm.getNetworkOperator(); /获取网络的MCC+MNC编码对应的名称 中国电信:China Telecom 中国移动:China Mobile String networkoper_name = tm.getNetworkOperatorName(); /获取SIM的串号 串号是标识物理设备的 String simnumber = tm.getSimSerialNumber(); /获取网络的类型 int phonetype = tm.getPhoneType(); String phonetype_str = null; switch(phonetype) case TelephonyManager.PHONE_TYPE_GSM: phonetype_str =GSM网络; break; case TelephonyManager.PHONE_TYPE_CDMA: phonetype_str =CDMA网络; break; case TelephonyManager.PHONE_TYPE_NONE: phonetype_str =未识别网络; break; int simstate = tm.getSimState(); String simstatestr = null; switch(simstate ) case TelephonyManager.SIM_STATE_UNKNOWN: simstatestr = 未知状态; break; case TelephonyManager.SIM_STATE_ABSENT: simstatestr = 未插卡; break; case TelephonyManager.SIM_STATE_PIN_REQUIRED: simstatestr = 需要PIN密码解锁; break; case TelephonyManager.SIM_STATE_PUK_REQUIRED: simstatestr = 需要PUK密码解锁; break; case TelephonyManager.SIM_STATE_READY: simstatestr = 就绪; break; case TelephonyManager.SIM_STATE_NETWORK_LOCKED: simstatestr = SIM已经被锁住; break; 读取这些数据需要权限4、广播的使用在android系统中,广播运用的很广泛。许多系统的事件都喜欢把它封装成广播。比如手机的电量改变,手机开机完毕,手机接收到短信等等。那么广播到底是什么呢?广播通俗的理解应该是android系统在整个手机内部发送的一个消息。比如手机开机完毕,当手机开机完成之后,就会在整个手机的内部发送一个“启动完毕”的消息。如果有一个广播接收着,它感兴趣的消息是“启动完毕”,这时候,这个广播接收者就会有所操作,比如启动某个程序,这样就可以实现开机启动程序的功能了。系统中提供了许许多多的广播,也可以用户自定义广播。广播接收者,对感兴趣的消息进行捕捉,一旦有这个消息出现,就进行相应的操作。广播接收者比较重要的地方分为两点,1、 广播接收者的注册 2、1、 广播接收者的注册a) 代码中注册 临时有效i. 注册ii. 注销b) Manifest文件中注册 永久有效,直到这个程序被卸载2、 a) 指定这个广播接收者所感兴趣的广播,通过标签指定开机完毕时发送的广播:接收短信时发送的广播在接收某些广播的时候需要权限,例如接收短信的广播就需要4、 SmsManager1、发送短信SmsManager smsManager = SmsManager.getDefault();/ 按照一条短信,最大容量拆分成多条短信List divideContents = smsManager.divideMessage(手机IMSI码为 + safedSubscriberid + 已被更换SIM卡,更换的SIM卡IMSI码为: + subscriberid);for (String text : divideContents) smsManager.sendTextMessage(savedNumber, null, text, null, null);- destinationAddress:目标电话号码- scAddress:短信中心号码,测试可以不填- text: 短信内容- sentIntent:发送 -中国移动 - 中国移动发送失败 - 返回发送成功或失败信号 - 后续处理 即,这个意图包装了短信发送状态的信息- deliveryIntent: 发送 -中国移动 - 中国移动发送成功 - 返回对方是否收到这个信息 - 后续处理 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。 声明短信发送权限 * AndroidManifest.xml 3、 读取短信内容接收短信时发送的广播在接收某些广播的时候需要权限,例如接收短信的广播就需要当短信到来的时候,系统会将短信的内容封装成pdu的格式,然后放到intent里面。所以要获得短信的内容,就通过intent,将puds拿出来就可以了,它返回的是Object数组Object messages = (Object) intent.getSerializableExtra(pdus); 创建一个二维字节数组byte pduObjs = new bytemessages.length;for (int i = 0; i messages.length; i+)pduObjsi = (byte) messagesi;byte pdus = new bytepduObjs.length;int pduCount = pdus.length;SmsMessage msgs = new SmsMessagepduCount;for (int i = 0; i pduCount; i+)pdusi = pduObjsi;msgsi = SmsMessage.createFromPdu(pdusi);return msgs;一条短信就是一个SmsMessage ,这个SmsMessage可以通过一个byte来创建小结:广播接收者,对接收短信进行监听,当手机接收到一条短信的时候,系统会发出一条广播,被广播接收者接收。别忘了要将这个广播接收者注册在onReceive方法中有一个参数intent,当拦截这条短信的时候,所有的短信信息都会封装在这个intent中,我们可以通过这个intent来获取短信信息短信封装的形式pduObject object = (Object) intent.getSerializableExtra(pdus);一条短信就是一个SmsMessage对象,一个SmsMessage对象通过一个byte来创建,一个byte数组就是一个object对象ObjectObject0: 存在的形式 byte 一条短信Object1Object2Object3所以Object 对应着一个byte的二维数组b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电缆知识及销售技巧培训课件
- 电线生产知识培训
- 第13章 品牌消费心理与行为
- 高级养老护理员培训
- 高炉水工基础知识培训课件
- DJ-89-生命科学试剂-MCE
- 北京安全员考试c试题及答案
- 北大数学训练营考试题及答案
- 护士电子考试题及答案
- 保安知识考试试题题库及答案
- 图标设计与制作PPT完整全套教学课件
- 感染性休克教学查房演示文稿
- 碎石组织供应及运输售后服务保障方案
- 护理服务规范整改措施(共15篇)
- 幼儿园教育活动设计与实践 张琳主编 PPT
- 建筑施工过程中成品保护施工方案
- 法律职业伦理(第二版)完整版教学课件全书电子讲义(最新)
- 西师版三年级上册数学全册教案(完整)
- 关键过程(工序)和特殊过程(工序)管理办法
- 整套VI品牌形象设计项目报价(费用明细)
- 武术校本课程武术基本功
评论
0/150
提交评论