1. 使用词典溯源:
https://www.android-doc.com/reference/packages.html
Keyword:TelephonyManager
2. 调用方式:1. 获得phone 服务; 2. 创建phone状态变化监听器PhoneStateListener 3. 实现应用,当phoneState发生变化时,调用tm获得phone服务的各个状态。
3. 权限声明
信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限。如:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
3. An Example like this:
package com.lmc.activity;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.CellLocation;
import android.telephony.NeighboringCellInfo;
public class RadioMonitorActivity extends Activity {
private TelephonyManager mTelephonyManager;
private MyPhoneCallListener mPhoneStateMonitor; //MyPhoneCallListener object
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTelephonyManager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
mPhoneStateMonitor = new MyPhoneCallListener();
mTelephonyManager.listen(mPhoneStateMonitor, PhoneStateListener.LISTEN_CALL_STATE);
}
//mTelephonyManager.getNetworkOperator();
//mTelephonyManager.getSimState();//int
//MyPhoneCallListener extends PhoneStateListener, to implement callback and event handling for registed event, like LISTEN_CALL_STATE
private class MyPhoneCallListener extends PhoneStateListener
{
@Override
public void onCallStateChanged(int state, String incomingNumber)
{
switch (state)
{
//电话通话的状态
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
//电话响铃的状态
case TelephonyManager.CALL_STATE_RINGING:
break;
//空闲中
case TelephonyManager.CALL_STATE_IDLE:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
{
//...
}
}