package android.demo.phonestate;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.Toast;
public class PhoneState_Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main);
//電話狀態的Listener
MyPhoneStateListener myPhoneStateListener = new MyPhoneStateListener();
//取得TelephonyManager
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
//將電話狀態的Listener加到取得TelephonyManager
telephonyManager.listen(myPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
public class MyPhoneStateListener extends PhoneStateListener
{
@Override
public void onCallStateChanged(int state, String phoneNumber)
{
Toast.makeText(PhoneState_Activity.this, TelephonyManager.ACTION_PHONE_STATE_CHANGED, Toast.LENGTH_SHORT).show();
switch (state)
{
//電話狀態是閒置的
case TelephonyManager.CALL_STATE_IDLE:
break;
//電話狀態是接起的
case TelephonyManager.CALL_STATE_OFFHOOK:
Toast.makeText(PhoneState_Activity.this, "正接起電話…", Toast.LENGTH_SHORT).show();
break;
//電話狀態是響起的
case TelephonyManager.CALL_STATE_RINGING:
Toast.makeText(PhoneState_Activity.this, phoneNumber + "正打電話來…", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
}
//--------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.demo.phonestate"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".PhoneState_Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
</manifest>
分享到:
相关推荐
主要介绍了Android实现监听电话呼叫状态的方法,涉及Android权限控制及电话状态监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。 ...
主要介绍了Android中TelephonyManager用法,结合实例形式分析了TelephonyManager类的功能,使用技巧与相关注意事项,需要的朋友可以参考下
主要介绍了Android中TelephonyManager类的方法,以实例形式较为详细的分析了Android基于TelephonyManager类获取手机各种常用信息的相关技巧,需要的朋友可以参考下
主要介绍了Android中TelephonyManager类的用法,以获取Android手机硬件信息为例详细分析了TelephonyManager类的使用技巧,需要的朋友可以参考下
JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的... 调用TelephonyManager的隐藏API是先参考Framework的/base/telephony/java/com/android/internal/telephony/ITelephony.aidl,然后自己实现一
Android 检测判断手机的待机状态,比如手机正在处于待机状态、手机正在响铃、手机正在震动、手机已接听电话、手机正在连接来电等等的一些状态,使用了Case语句来判断各个状态。 case TelephonyManager.CALL_STATE_...
主要介绍了Android的TelephonyManager功能,可以帮助读者更好的理解Java反射机制,需要的朋友可以参考下
Android 通过开启后台的服务达到监听来电和去电 源码
电话管理器(TelephonyManager)
1.在telephonymanager/src/main/AndroidManifest.xml中添加如下代码; 2.运行程序后,在虚拟机上打开 设置–>应用和通知–>搜索我们正在运行的应用程序–>权限–>将存储空间和麦克风权限设置为开启;(具体操作如...
TelephonyManager类使用方法大全TelephonyManager类使用方法大全
通过电话管理器获取通话状态,执行相应的操作(含详细源码)
详细解析java的反射机制