`
喧嚣求静
  • 浏览: 572857 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android电话信息相关API

 
阅读更多

转载自:http://www.linuxidc.com/Linux/2011-10/45049.htm

android平台提供的电话信息系统管理功能,主要包括:获取电话信息(设备信息、SIM信息以及网络信息)、侦听电话状态(呼叫状态、服务状态、信号强度状态等)和调用电话拨号器。

TelephoneManager类

 在Manifest中添加Permission :<uses-permission Android:name="android.permission.READ_PHONE_STATE" />

 

 

TelephonyManager的获得:TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);

 

Constants

 

String

ACTION_PHONE_STATE_CHANGED

Broadcast intent action indicating that the call state (cellular) on the device has changed.

int

CALL_STATE_IDLE

Device call state: No activity.

空闲(无呼入或已挂机)

int

CALL_STATE_OFFHOOK

Device call state: Off-hook.

摘机(有呼入)

int

CALL_STATE_RINGING

Device call state: Ringing.

响铃(接听中)

int

DATA_ACTIVITY_DORMANT

Data connection is active, but physical link is down

电话数据活动状态类型:睡眠模式(3.1版本)

int

DATA_ACTIVITY_IN

Data connection activity: Currently receiving IP PPP traffic.

电话数据活动状态类型:数据流入

int

DATA_ACTIVITY_INOUT

Data connection activity: Currently both sending and receiving IP PPP traffic.

电话数据活动状态类型:数据交互

int

DATA_ACTIVITY_NONE

Data connection activity: No traffic.

电话数据活动状态类型:无数据流动

int

DATA_ACTIVITY_OUT

Data connection activity: Currently sending IP PPP traffic.

电话数据活动状态类型:数据流出

int

DATA_CONNECTED

Data connection state: Connected.

数据连接状态类型:已连接

int

DATA_CONNECTING

Data connection state: Currently setting up a data connection.

数据连接状态类型:正在连接

int

DATA_DISCONNECTED

Data connection state: Disconnected.

数据连接状态类型:断开

int

DATA_SUSPENDED

Data connection state: Suspended.

数据连接状态类型:已暂停

String

EXTRA_INCOMING_NUMBER

The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the incoming phone number.

String

EXTRA_STATE

The lookup key used with the ACTION_PHONE_STATE_CHANGED broadcast for a String containing the new call state.

int

NETWORK_TYPE_1xRTT

Current network is 1xRTT

int

NETWORK_TYPE_CDMA

Current network is CDMA: Either IS95A or IS95B

int

NETWORK_TYPE_EDGE

Current network is EDGE

int

NETWORK_TYPE_EHRPD

Current network is eHRPD

int

NETWORK_TYPE_EVDO_0

Current network is EVDO revision 0

int

NETWORK_TYPE_EVDO_A

Current network is EVDO revision A

int

NETWORK_TYPE_EVDO_B

Current network is EVDO revision B

int

NETWORK_TYPE_GPRS

Current network is GPRS

int

NETWORK_TYPE_HSDPA

Current network is HSDPA

int

NETWORK_TYPE_HSPA

Current network is HSPA

int

NETWORK_TYPE_HSPAP

Current network is HSPA+

int

NETWORK_TYPE_HSUPA

Current network is HSUPA

int

NETWORK_TYPE_IDEN

Current network is iDen

int

NETWORK_TYPE_LTE

Current network is LTE

int

NETWORK_TYPE_UMTS

Current network is UMTS

int

NETWORK_TYPE_UNKNOWN

Network type is unknown

int

PHONE_TYPE_CDMA

Phone radio is CDMA.

int

PHONE_TYPE_GSM

Phone radio is GSM.

int

PHONE_TYPE_NONE

No phone radio.

int

PHONE_TYPE_SIP

Phone is via SIP.

int

SIM_STATE_ABSENT

SIM card state: no SIM card is available in the device

int

SIM_STATE_NETWORK_LOCKED

SIM card state: Locked: requries a network PIN to unlock

int

SIM_STATE_PIN_REQUIRED

SIM card state: Locked: requires the user's SIM PIN to unlock

int

SIM_STATE_PUK_REQUIRED

SIM card state: Locked: requires the user's SIM PUK to unlock

int

SIM_STATE_READY

SIM card state: Ready

int

SIM_STATE_UNKNOWN

SIM card state: Unknown.

 

 

Fields

 

public static final String

EXTRA_STATE_IDLE

Value used with EXTRA_STATE corresponding to CALL_STATE_IDLE.

public static final String

EXTRA_STATE_OFFHOOK

Value used with EXTRA_STATE corresponding to CALL_STATE_OFFHOOK.

public static final String

EXTRA_STATE_RINGING

Value used with EXTRA_STATE corresponding to CALL_STATE_RINGING.

 

 

Public Methods

 

int

getCallState()

Returns a constant indicating the call state (cellular) on the device.

CellLocation

getCellLocation()

Returns the current location of the device.

int

getDataActivity()

Returns a constant indicating the type of activity on a data connection (cellular).

处理侦测到的数据活动的改变事件。通过该函数,可以获取数据活动状态信息。

电话数据活动状态类型定义在TelephoneyManager类中。

DATA_ACTIVITY_NONE            无数据流动
DATA_ACTIVITY_IN                    数据流入
DATA_ACTIVITY_OUT                数据流出
DATA_ACTIVITY_INOUT            数据交互
DATA_ACTIVITY_DORMANT     睡眠模式(2.1版本)

int

getDataState()

Returns a constant indicating the current data connection state (cellular).

String

getDeviceId()

Returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones.

获取设备标识(IMEI)

String

getDeviceSoftwareVersion()

Returns the software version number for the device, for example, the IMEI/SV for GSM phones.

获得软件版本

String

getLine1Number()

Returns the phone number string for line 1, for example, the MSISDN for a GSM phone.

线路1的电话号码

List<NeighboringCellInfo>

getNeighboringCellInfo()

Returns the neighboring cell information of the device.

String

getNetworkCountryIso()

Returns the ISO country code equivalent of the current registered operator's MCC (Mobile Country Code).

获取网络的国家ISO代码

String

getNetworkOperator()

Returns the numeric name (MCC+MNC) of current registered operator.

获取SIM移动国家代码(MCC)和移动网络代码(MNC)

String

getNetworkOperatorName()

Returns the alphabetic name of current registered operator. 

获取服务提供商姓名(中国移动、中国联通等)

int

getNetworkType()

Returns a constant indicating the radio technology (network type) currently in use on the device for data transmission.

获取网络类型

NETWORK_TYPE_UNKNOWN 未知网络
NETWORK_TYPE_GPRS   
NETWORK_TYPE_EDGE 通用分组无线服务(2.5G)
NETWORK_TYPE_UMTS    全球移动通信系统(3G)
NETWORK_TYPE_HSDPA 
NETWORK_TYPE_HSUPA
NETWORK_TYPE_HSPA
NETWORK_TYPE_CDMA         CDMA网络(2.1版本)
NETWORK_TYPE_EVDO_0     CDMA2000 EV-DO版本0(2.1版本)
NETWORK_TYPE_EVDO_A     CDMA2000 EV-DO版本A(2.1版本)
NETWORK_TYPE_EVDO_B     CDMA2000 EV-DO版本B(2.1版本)
NETWORK_TYPE_1xRTT         CDMA2000 1xRTT(2.1版本)
NETWORK_TYPE_IDEN
NETWORK_TYPE_LTE
NETWORK_TYPE_EHRPD
NETWORK_TYPE_HSPAP

int

getPhoneType()

Returns a constant indicating the device phone type.

电话类型

PHONE_TYPE_NONE   未知
PHONE_TYPE_GSM      GSM手机
PHONE_TYPE_CDMA   CDMA手机(2.1版本)
PHONE_TYPE_SIP         via SIP手机

String

getSimCountryIso()

Returns the ISO country code equivalent for the SIM provider's country code.

获取SIM卡中国家ISO代码

String

getSimOperator()

Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM.

获得SIM卡中移动国家代码(MCC)和移动网络代码(MNC)

String

getSimOperatorName()

Returns the Service Provider Name (SPN).

获取服务提供商姓名(中国移动、中国联通等)

String

getSimSerialNumber()

Returns the serial number of the SIM, if applicable.

SIM卡序列号

int

getSimState()

Returns a constant indicating the state of the device SIM card.

SIM卡状态

SIM_STATE_UNKNOWN                   未知状态
SIM_STATE_ABSENT                        未插卡
SIM_STATE_PIN_REQUIRED          需要PIN码,需要SIM卡PIN码解锁
SIM_STATE_PUK_REQUIRED        需要PUK码,需要SIM卡PUK码解锁
SIM_STATE_NETWORK_LOCKED    网络被锁定,需要网络PIN解锁
SIM_STATE_READY                           准备就绪

其中:PIN个人识别码 PUK个人解锁码

String

getSubscriberId()

Returns the unique subscriber ID, for example, the IMSI for a GSM phone.

获得客户标识(IMSI)

String

getVoiceMailAlphaTag()

Retrieves the alphabetic identifier associated with the voice mail number.

String

getVoiceMailNumber()

Returns the voice mail number.

boolean

hasIccCard()

 

boolean

isNetworkRoaming()

Returns true if the device is considered roaming on the current network, for GSM purposes.

void

listen(PhoneStateListener listener, int events)

Registers a listener object to receive notification of changes in specified telephony states.

侦听电话的呼叫状态。

电话管理服务接口支持的侦听类型在PhoneStateListener类中定义。

 

 

 

 

PhoneStateListener类

Constants

int

LISTEN_CALL_FORWARDING_INDICATOR

Listen for changes to the call-forwarding indicator.

侦听呼叫转移指示器改变事件

int

LISTEN_CALL_STATE

Listen for changes to the device call state.

侦听呼叫状态改变事件

int

LISTEN_CELL_LOCATION

Listen for changes to the device's cell location. Note that this will result in frequent callbacks to the listener.

侦听设备位置改变事件

int

LISTEN_DATA_ACTIVITY

Listen for changes to the direction of data traffic on the data connection (cellular).

侦听数据连接的流向改变事件

int

LISTEN_DATA_CONNECTION_STATE

Listen for changes to the data connection state (cellular).

侦听数据连接状态改变事件

int

LISTEN_MESSAGE_WAITING_INDICATOR

Listen for changes to the message-waiting indicator.

侦听消息等待指示器改变事件

int

LISTEN_NONE

Stop listening for updates.

停止侦听

int

LISTEN_SERVICE_STATE

Listen for changes to the network service state (cellular).

侦听网络服务状态

int

LISTEN_SIGNAL_STRENGTH

This constant is deprecated. by LISTEN_SIGNAL_STRENGTHS

侦听网络信号强度

int

LISTEN_SIGNAL_STRENGTHS

Listen for changes to the network signal strengths (cellular).

 

Public Constructors

 PhoneStateListener()          

Public Methods

 

void

onCallForwardingIndicatorChanged(boolean cfi)

Callback invoked when the call-forwarding indicator changes.

void

onCallStateChanged(int state, String incomingNumber)

Callback invoked when device call state changes.

处理侦测到的电话呼叫状态的改变事件。通过该回调事件,可以获取来电号码,而且可以获取电话呼叫状态。即用switch(state){case TelephoneManager.CALL_STATE_……}来判断

void

onCellLocationChanged(CellLocation location)

Callback invoked when device cell location changes.

void

onDataActivity(int direction)

Callback invoked when data activity state changes.

void

onDataConnectionStateChanged(int state)

Callback invoked when connection state changes.

void

onDataConnectionStateChanged(int state, int networkType)

same as above, but with the network type.

处理侦测到的数据连接状态的改变状态。通过该回调函数,可以获取数据连接状态信息。

数据连接类型

DATA_DISCONNECTED    断开
DATA_CONNECTING         正在连接
DATA_CONNECTED          已连接
DATA_SUSPENDED           已暂停

void

onMessageWaitingIndicatorChanged(boolean mwi)

Callback invoked when the message-waiting indicator changes.

void

onServiceStateChanged(ServiceState serviceState)

Callback invoked when device service state changes.

处理侦测到的服务状态的改变事件。通过该回调函数可以获取服务状态信息。

电话服务状态类型定义在ServiceState类中。

void

onSignalStrengthChanged(int asu)

This method is deprecated. Use onSignalStrengthsChanged(SignalStrength)

处理侦测到的信号强度的改变事件。通过该回调函数,可以获取信号强度类型。

void

onSignalStrengthsChanged(SignalStrength signalStrength)

Callback invoked when network signal strengths changes.

 

 

 电话拨号

  1. Uri uri=Uri.parse("tel:"+电话号码);  
  2. Intent intent=new Intent(Intent.ACTION_DIAL,uri);  
  3. startActivity(intent);  

其中的电话号码可以通过EditText中输入获得数据,如editText.getText().toString().trim()来获得
上面的代码可以放在Button的onClick方法中调用即可实现拨打电话的功能,调用的是系统的拨号界面

分享到:
评论

相关推荐

    android常用的API接口调用

    Android 常用的 API 接口调用 Android 操作系统提供了许多有用的 API 接口,开发者可以通过这些接口调用来实现各种功能。本文将对 Android 常用的 API 接口调用进行归类和详细介绍。 显示网页 要在 Android 应用...

    Android_UI_API最全中文文档

    * android:hintText:为空时显示的文字提示信息。 * android:imeOptions:附加功能,设置右下角IME动作与编辑框相关的动作。 * android:imeActionId:设置IME动作ID。 * android:imeActionLabel:设置IME动作Label。...

    使用android电话API

    总结,使用Android电话API涉及电话状态获取、短信服务管理和电话拨出,开发者需要熟悉TelephonyManager、SmsManager、Intent等关键类,并掌握权限管理和多版本兼容策略。在实际应用中,这将帮助我们构建功能丰富的...

    Android2.2—TextView API中文文档

    ### Android2.2—TextView API中文文档:深入解析 #### 引言 在Android开发中,`TextView`作为最常用的视图组件之一,用于展示文本信息。本文将深入解析`TextView` API,尤其是针对Android2.2版本的特性,帮助...

    android API 中文文档

    在探讨这份android API中文文档之前,需要明确Android API文档是Android开发者日常工作中不可或缺的参考资料。这份文档详细地描述了Android平台上各个组件的使用方法和属性设置,涵盖了从基础控件到高级功能的广泛...

    Android 谷歌官网API26

    Android API 26,对应的是Android 8.0 Oreo操作系统,是谷歌在2017年发布的一个重要更新。这个版本引入了多项关键功能和改进,旨在提升用户体验、优化性能以及增强开发者工具。让我们深入探讨一下Android API 26包含...

    Pro Android学习:联系人API

    在Android平台上,联系人API是开发者与用户手机通讯录进行交互的重要工具。通过这个API,开发者可以实现诸如读取联系人信息、添加新联系人、更新现有联系人、删除联系人以及管理联系人分组等一系列功能。在"Pro ...

    Android 4.4.2(API 19) SDK platforms

    8. **电话和短信功能增强**:引入了来电显示归属地信息,改进了通话质量,同时支持SMS和MMS的多媒体内容。 9. **新的开发者工具**:SDK包中包含的Android Studio和其他开发工具,如ADT(Android Developer Tools)...

    Android-API详解大全

    ### Android-API详解大全 #### 一、TextView的API详解 **1.1 结构** TextView在Android中的层次结构如下所示: - `java.lang.Object` - `↳android.view.View` (视图基类) - `↳android.widget.TextView` ...

    python android api

    标签 "python android 安卓 api qpython" 表明这份文档是关于在安卓平台上使用 Python 语言和 QPython(一个让 Python 脚本运行在 Android 设备上的环境)相关的接口和功能的介绍。 接下来,我们将详细阐述文档中...

    android 2.2 source api 8

    Android 2.2,也被称为Froyo(冻酸奶),是Android操作系统的一个重大版本更新,其API级别为8。这个版本在2010年发布,带来了诸多性能优化和新特性,对开发者和用户都具有重要的意义。在这个压缩包中,包含的是...

    安卓Android源码——android打电话源码.rar

    通过分析这个源码,我们可以学习到如何在Android系统中集成电话拨打功能,并了解相关API和权限管理。 在Android中,拨打电话功能涉及到的主要知识点包括: 1. **Intent**: 在Android中,Intent用于启动或与其它...

    Android源码——百度地图API-定位周边搜索POI源码.7z

    搜索结果会通过`OnPoiSearchListener`的`onPoiResultReturned(PoiResult poiResult)`方法返回,`PoiResult`包含了多个`PoiInfo`对象,每个`PoiInfo`代表一个兴趣点,包括名称、地址、电话等详细信息。 此外,"1-...

    android中文api

    本文将深入探讨"android.widget"包中的相关内容,该包是Android API的重要组成部分,包含了大量的用户界面组件。 Android的`android.widget`包是用于构建应用程序用户界面的基础组件集合。这些组件通常在Android的...

    基于phonegap的android电话本源码

    总的来说,这个基于PhoneGap的Android电话本源码涵盖了移动应用开发中的多个重要知识点,包括PhoneGap框架的使用、Android系统的Contacts API、JavaScript与原生API的交互、以及数据备份策略。对于想要学习PhoneGap...

    安卓Android源码——android打电话源码.zip

    10. **TelephonyManager**: 这是Android提供的API,允许应用获取关于电话功能的信息,如当前的通话状态、SIM卡信息等。 通过对这些源码的分析,开发者可以学习到Android系统的底层工作原理,优化通话体验,或者开发...

    android telephony api

    这个API允许开发者访问手机的SIM卡信息、网络连接状态、来电和去电信息等,从而实现各种与电话通信相关的功能,例如创建电话应用、监控通话状态或者获取网络运营商信息。 在Android中,TelephonyManager类是Android...

    Android开发手册——API函数详解.pdf

    Android开发是目前移动应用开发中非常重要的一环,尤其是在构建跨平台应用时,对Android API的了解程度直接影响到开发效率和应用的质量。在给定文件中,我们可以看到一份关于Android开发中TextView组件的API详细描述...

    Android_API详解

    Android API详解主要涉及Android开发中广泛使用的一个基础组件:TextView。TextView是一个UI组件,用于在屏幕上显示文本。开发者通过它的API可以控制文本的显示方式和行为。在深入学习Android开发的过程中,对...

Global site tag (gtag.js) - Google Analytics