ALFA
DeV工作室原创文章如转载,请注明:转载自博客原文地址:http://blog.csdn.net/kongre/article/details/6748225
Android Telephony API提供了一种对基本电话信息进行监听的方式,不断可以获取网络类型,连接状态等基本信息,也可以用来对电话号码字符串进行操作。
秘籍一、使用Telephony Manager
Android Telephony API当中有一个TelephonyManager的类,这个类事实上代表的是Android的一种系统服务,用来访问设备上的Telephony Services的信息。其中有一些Telephony Services的信息是有权限保护的,所以我们在访问之前必须声明使用相应的权限。
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
public class TelephonyActivity extends Activity {
TextView tv1;
TelephonyManager telManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView)findViewById(R.id.tv1);
telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
StringBuilder sb = new StringBuilder();
sb.append("deviceid:").append(telManager.getDeviceId()).append("\n");
sb.append("Line number:").append(telManager.getLine1Number()).append("\n");
sb.append("Network Country ISO:").append(telManager.getNetworkCountryIso()).append("\n");
sb.append("Network Operator:").append(telManager.getNetworkOperator()).append("\n");
sb.append("Network Operator Name:").append(telManager.getNetworkOperatorName()).append("\n");
sb.append("Sim Country ISO:").append(telManager.getSimCountryIso()).append("\n");
sb.append("Sim Operator:").append(telManager.getSimOperator()).append("\n");
sb.append("Sim Operator Name:").append(telManager.getSimOperatorName()).append("\n");
sb.append("Sim Serial Number:").append(telManager.getSimSerialNumber()).append("\n");
tv1.setText(sb);
}
}
真机运行效果图如下:
秘籍二、监听电话状态
PhoneStateListener提供了对电话状态进行监听的功能。举例来说,要对一个来电的电话状态进行监听。TelephonyManager需要注册一个PhoneStateListener对PhoneStateListener.LISTEN_CALL_STATE事件进行监听。来电的状态分为三种:
1.CALL_STATE_IDLE:Device not being used for a phone call
2.CALL_STATE_RINGING:Device receiving a call
3.CALL_STATE_OFFHOOK:Call in progress
你可以使用Logcat显示这些不同的状态无论是来电还是去电的时候。
public class HardwareTelephony extends Activity {
TextView tv1;
TelephonyManager telManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView)findViewById(R.id.tv1);
telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telManager.listen(new TelListener(), PhoneStateListener.LISTEN_CALL_STATE);
}
private class TelListener extends PhoneStateListener{
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
Log.v("Phone State","state:" + state);
switch(state){
case TelephonyManager.CALL_STATE_RINGING:
Log.v("Phone State","incoming number:" + incomingNumber + " received");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.v("Phone State","incoming number:" + incomingNumber + " picked up");
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.v("Phone State", "incoming number:" + incomingNumber + " ended");
break;
default:
break;
}
}
}
}
最后如果你还是觉得我写的不够详细
看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习ALFA DeV工作室希望可以和大家一起进步。
下载地址:http://download.csdn.net/source/3575268
分享到:
相关推荐
有关Android Telephony API的简单介绍,包括如何获取一些基本的信息,还包括如何对来电状态进行监听等内容。
telephonyapi API overview Working with SMS Working with phone calls Working with MMS
这是Pro Android学习系列中Telephony API部分的例子源代码。相关学习笔记见:http://blog.csdn.net/flowingflying/article/details/6212512
使用android电话API 1、使用电话功能包 2、使用短消息 3、拨打电话
Linux Journal 上关于Android RIL的文章。很少的Android RIL资料之一。
NetMonster核心是从应用程序中提取的,某些Telephony功能移植到较旧的Android设备。 为什么要使用NetMonster Core而不是传统API? 验证-库验证来自RIL的数据并在可能的情况下更正它们 更丰富的信息-单元格标识和...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
主要介绍了Android获取手机本机号码的实现方法的相关资料,希望通过本文大家能够实现这样的方法,需要的朋友可以参考下
在AIDL创建一个新包文件夹名称必须为com.android.internal.telephony 在该程序包名称中创建AIDL文件必须为ITelephony.aidl 在ITelephony.aidl添加该代码 package com.android.internal.telephony; interface ...
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
The Assist API (“Now On Tap”) The Data Binding Framework Desktop Android Apps Drag and Drop Keyboard and Mouse Input Home Screen App Widgets Adapter-Based App Widgets Content Provider Theory Content...
Pro Android 4 shows you how to build real-world and fun mobile apps using the new Android SDK 4 (Ice Cream Sandwich)...Understanding the Contacts API Deploying your Application: Android Market and Beyond
前言 ...但是报错了Call requires API level 24 (current min is 21): android.telephony.TelephonyManager#getDataNetworkType Android 版本更替,新的版本带来新的特性,新的方法。 新的方法带来
说明:由于挂断电话android api不是对外开放的,所以需要使用反射的方法得到拨打电话的服务。 1.将android源代码中的”aidl”文件拷贝到项目中 这样项目中会生成两个包:android.telephony;此包中文件为:...
// 在AndroidQ上以下方法都会有问题 // 返回:866976045261713; TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); tm.getDeviceId(); tm.getSubscriberId(); tm.getDeviceId...
Telephony Working With SMS NFC Device Administration Basic Use of Sensors Printing and Document Generation Basic Bluetooth RFCOMM Dealing with Different Hardware Writing and Using Parcelables ...
安卓学习资源包是一种针对安卓操作系统开发的综合性学习资源,包含了各种教程、文档和工具,旨在帮助开发者更好地理解和应用安卓系统。该资源包包含了以下几方面的...Android.telephony:提供与拨打电话相关的API交互12
监视单元格信息的变化有关当前电池的信息,请咨询 FCC 电池塔数据库如果未找到手机信号塔(即似乎是非法的),则生成警报当前状态/待办事项拦截器: Blackphone 的 PrivatOS 似乎对 android.telephony API 的支持...