Android实例-手机安全卫士(二十四)-绑定SIM卡
一、目标。
使用TelephonyManager对象获取手机相关信息,用SharedPreferences对象保存配置信息。
二、代码实现。
1、为“绑定SIM卡”按钮添加id(取名setup_wizard_bandingSimCard),用于在Activity(SetupWizard_ui_2.java)中绑定监听器。
2、在按钮所在的Activity中,新建手机管理对象(TelephonyManager)和“绑定SIM卡”按钮对象(自定义的组件SettingItemView,取名setup_wizard_bandingSimCard),通过getSystemService(String name)实例化新建的手机管理对象(TelephonyManager),参数String name为TELEPHONY_SERVICE。通过按钮对象的findViewById方法找到布局文件中的按钮,并为其绑定点击事件监听器(setOnClickListener(OnClickListener l))。
3、在新建的抽象方法类(SlideActivity.java)中,由于继承它的子类中均会使用SharedPreferences对象,所以在抽象方法类中直接新建protect类型的SharedPreferences对象(取名sp),并通过getSharedPreferences(String name, int mode)方法实例化,可参考主界面(HomeActivity.java)代码的实例化方法。
4、在“绑定SIM卡”按钮所在的Activity中,通过SharedPreferences对象(sp)的getString(string)方法获取config中绑定SIM卡的参数(SimSerialNumber)值,通过if...else...语句先判断是否已经绑定SIM卡。若已绑定(即SimSerialNumber对应的值非空),则通过“绑定SIM卡”按钮(setup_wizard_bandingSimCard)的setChecked(boolean)方法设置为true。否则为false。
判断是否已经绑定SIM卡的方法代码:
1 String SIM = sp.getString("SimSerialNumber", null); 2 if (TextUtils.isEmpty(SIM)) { 3 setup_wizard_bandingSimCard.setChecked(false); 4 }else { 5 setup_wizard_bandingSimCard.setChecked(true); 6 }
View Code
5、在绑定SIM卡”按钮的监听器中:
①.通过SharedPreferences对象的editor()方法获得编辑器对象(Editor);
②.在onclick()方法中,通过TelephonyManager对象的getSimSerialNumber()方法获得String类型的SIM卡序列号(20位),需要获得“读取手机状态”(READ_PHONE_STATE)权限。
③.通过if..else..语句判断“绑定SIM卡”按钮(setup_wizard_bandingSimCard)是否被选中(isChecked)。如果选中则点击时通过setChecked(boolean)方法设置其为未选中(false),同时通过编辑器对象(editor)的putString(String key, String value)方法设置config中的相关参数(SimSerialNumber)为空(null)。反之设置按钮为选中,config中相关参数(SimSerialNumber)为②中获得SIM卡序列号。
④.通过编辑器对象(editor)的commit()方法提交。
监听器代码:
1 setup_wizard_bandingSimCard.setOnClickListener(new OnClickListener() { 2 3 Editor editor = sp.edit(); 4 5 @Override 6 public void onClick(View v) { 7 //读取并保存SIM卡序列号 8 String SimSerialNumber = telephonyManager.getSimSerialNumber(); 9 if(setup_wizard_bandingSimCard.isChecked()){ 10 // 11 setup_wizard_bandingSimCard.setChecked(false); 12 editor.putString("SimSerialNumber", null); 13 }else{ 14 setup_wizard_bandingSimCard.setChecked(true); 15 editor.putString("SimSerialNumber", SimSerialNumber); 16 } 17 editor.commit(); 18 } 19 });
View Code
6、注意以上代码的先后顺序,如要先加载父类,才能使用SharedPreferences对象,要先找到控件才能进行相关操作!
转载于:https://www.cnblogs.com/Red-Shark/p/4262184.html
Android实例-手机安全卫士(二十四)-绑定SIM卡相关推荐
- Android开发笔记(二十四)res目录的结构与配置
res目录结构 res是Android项目工程中存放各类的目录,主要包括布局.图形与配置等等.res的子目录主要有: anim : 存放动画的描述文件 drawable : 存放各类图形的描述文件,包 ...
- Android实例-手机安全卫士(三十五)-来电号码显示归属地
一.目标 1.显示来电号码的归属地: 2.可在"设置中心"设置"是否启用来电号码归属地显示" 二.代码实现 (以服务的形式监听来电状态) 1.在项目服务包中新增 ...
- Android实例-手机安全卫士(四十一)-选择自定义Toast背景
一.目标 通过对话框选择并保存自定义的Toast背景 二.代码实现 1.复制layout文件夹中的model_setting_item.xml文件,以其为模板进行修改(取名为model_ ...
- Android实例-手机安全卫士(三十六)-根据Service是否开启确定CheckBox选中状态
一.目标 1.根据service是否在后台运行情况来确定CheckBox的选中状态: 2.解决"设置中心"的"开启来电号码显示归属地"功能在退出程序再进入时选中 ...
- 动画android,Android学习指南之二十四:Android动画的实现 上
在Android系统中也能经常见到动画,那么如何实现动画效果呢?本文就来为大家介绍动画的实现方式. Android中动画的实现分两种方式,一种方式是补间动画Tween Animation,就是说你定义 ...
- Android图形之HWC(二十四)
HWC概述 HWC(hwcomposer)是Android中进行窗口(Layer)合成和显示的HAL层模块,其实现是特定于设备的,而且通常由显示设备制造商 (OEM)完成,为SurfaceFlinge ...
- Android实例-手机安全卫士(一)-启动界面
一.目标. 1.启动时全屏显示,并获得当前应用版本号: 2.美化字体:颜色和文字阴影: 3.添加一个ProgressBar以增加用户体验. 效果如图 二.编写过程. 1.布局.在布局文件中增加一个Te ...
- Android实例-手机安全卫士(十一)-自定义对话框点击事件处理
一.目标 在弹出的自定义对话框中,当点击"确认"时,保存密码,关闭对话框:当点击"取消"时关闭对话框.同时,如果不输入密码或输入密码错误则弹出相应的提示. 二. ...
- 漫步数理统计二十四——伽玛、卡方与贝塔分布
本篇博文我们讲介绍伽玛(Γ\Gamma),卡方(χ2\chi^2)与贝塔(β\beta)分布.在高等微积分中已经证明过,对于α>0\alpha>0,积分 ∫∞0yα−1e−ydy \int ...
最新文章
- 一个mongosee例子
- seaborn箱图(box plot)可视化、并且在箱图中使用三角形标注均值的位置(showmeans=True)
- linux 重定向类型 超级块 i节点
- PE格式详细讲解4 - 系统篇04|解密系列
- 面向对象程序设计案例
- day22 Pythonpython 本文json模块
- matlab遗传算法m文件,matlab上安装遗传算法工具箱
- 树莓派删除python2.7设置python3.5
- GARFIELD@11-10-2004
- Docker最全教程之使用TeamCity来完成内部CI、CD流程(十七)
- Asp.net页面事件引发后台程序处理原理【转】
- Spark记录-Scala记录(基础程序例子)
- Turtlebot2 环境配置
- 团队作业4——第一次项目冲刺(Alpha版本) Day1
- java中RIGHT的值_java循环遍历, reduce(),reduceRight()方法和Object,keys遍历对象的属性...
- Super超图,GIS软件
- Building Autoencoders in Keras
- JAVAWeb开发之Servlet-19.Filter
- matlab读取三级文件夹方式
- 功能安全-26262-理论到实践-基础知识-基于可靠性理论的的SIL与基于系统理论的STAMP