在手机的运行过程中,操作系统一直都在与底层的外设打交道,其中包括sim卡和无线消息。在手机启动时,它是如何知道当前的sim卡是移动的还是联通的,我用的是哪个小区的基站,各个基站的信号强度和切换时间又是多少。本例介绍了使用OPhone手机和底层数据的交互,受限于模拟器,部分功能将不能得到实际数据。
一、系统设置
首先,我们需要以下的库支持:
import android.telephony.gsm.*;
import android.telephony.*;
为了可以读取系统数据,我们还需要在AndroidManifest.xml中添加下列permission:
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE" />
二、函数介绍
telephony系列库中有以下class,我们选取部分介绍,并实现功能。
1.CellLocation 小区信息
static void requestLocationUpdate () 请求位置更新,如果更新将产生广播,接收对象为注册LISTEN_CELL_LOCATION的对象,需要的permission名称为ACCESS_COARSE_LOCATION