[android基础知识] 之四:TelephonyManager service的使用实例
2014-10-08 16:09
337 查看
在android 获取手机信息的时候用到这样一段代码:
public class BasicInfo {
public String getPhoneNumber()
{
//
获取手机号 MSISDN,很可能为空
TelephonyManager
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
StringBuffer
inf = new StringBuffer();
switch(tm.getSimState()){
//getSimState()取得sim的状态 有下面6中状态
case
TelephonyManager.SIM_STATE_ABSENT :inf.append("无卡");return inf.toString();
case
TelephonyManager.SIM_STATE_UNKNOWN :inf.append("未知状态");return inf.toString();
case
TelephonyManager.SIM_STATE_NETWORK_LOCKED :inf.append("需要NetworkPIN解锁");return inf.toString();
case
TelephonyManager.SIM_STATE_PIN_REQUIRED :inf.append("需要PIN解锁");return inf.toString();
case
TelephonyManager.SIM_STATE_PUK_REQUIRED :inf.append("需要PUK解锁");return inf.toString();
case
TelephonyManager.SIM_STATE_READY :break;
}
String phoneNumber = tm.getLine1Number();
return phoneNumber;
}
在另外一个activity类里面调用的时候 总是出现进程关闭 无法获取手机信息。后来发现
于是:
1. 给BasicInfo 添加一个带参数Context的构造函数:
public BasicInfo (Context context)
{
this.context = context;
}
2. getPhoneNumber()函数里面改成:
context.getSystemService(Context.TELEPHONY_SERVIC);
3. 在调用类里面 BasicInfo bi = new BasicInfo(this);
bi.getPhoneNumber();
public class BasicInfo {
public String getPhoneNumber()
{
//
获取手机号 MSISDN,很可能为空
TelephonyManager
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
StringBuffer
inf = new StringBuffer();
switch(tm.getSimState()){
//getSimState()取得sim的状态 有下面6中状态
case
TelephonyManager.SIM_STATE_ABSENT :inf.append("无卡");return inf.toString();
case
TelephonyManager.SIM_STATE_UNKNOWN :inf.append("未知状态");return inf.toString();
case
TelephonyManager.SIM_STATE_NETWORK_LOCKED :inf.append("需要NetworkPIN解锁");return inf.toString();
case
TelephonyManager.SIM_STATE_PIN_REQUIRED :inf.append("需要PIN解锁");return inf.toString();
case
TelephonyManager.SIM_STATE_PUK_REQUIRED :inf.append("需要PUK解锁");return inf.toString();
case
TelephonyManager.SIM_STATE_READY :break;
}
String phoneNumber = tm.getLine1Number();
return phoneNumber;
}
在另外一个activity类里面调用的时候 总是出现进程关闭 无法获取手机信息。后来发现
getSystemService这个方法基于context,只有存在TextView控件的窗体中这个方法才会被激活~ |
于是:
1. 给BasicInfo 添加一个带参数Context的构造函数:
public BasicInfo (Context context)
{
this.context = context;
}
2. getPhoneNumber()函数里面改成:
context.getSystemService(Context.TELEPHONY_SERVIC);
3. 在调用类里面 BasicInfo bi = new BasicInfo(this);
bi.getPhoneNumber();
相关文章推荐
- [androdi基础知识] 之十六: ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId();语句的理解
- 【Android基础知识】IntentService基本使用
- Android基础知识_使用Service
- android-基础知识:smsManager.sendTextMessage() 发送短信息
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- Android Service 使用实例
- Android 获取正在运行的服务 ActivityManager.RunningServiceInfo使用
- Android基础—使用IntentService
- Android Service使用方法--简单音乐播放实例
- Delphi使用spcomm实现串口通信 基础知识及(两个实例)
- Android基础知识之String类使用详解
- Android Service的使用方法 音乐播放器实例
- Android基础——Service的使用(绑定本地Service并与之通信)
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- Android基础知识之String类使用详解
- [实例教程]使用android中的AIDL让Service与Activity通信(service回调activity)
- 实例收藏Android开发环境搭建和Android开发基础知识汇总值得收藏
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- android基础知识12:android自动化测试04—Robotium:实例(上)
- android基础知识12:android自动化测试04—Robotium:实例(下)