效果圖 java
當咱們外部打電話過來的時候,當前的信息會自動的進行改變。 android
------------------------------------------------------------------------------- app
- package cn.com.chenzheng_java;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.telephony.PhoneStateListener;
- import android.telephony.TelephonyManager;
- import android.widget.TextView;
- /**
- *
- * @author chenzheng_java
- * @description 經過該實例,咱們能夠看到,若是咱們想要監聽電話的撥打情況,須要這麼幾步
- * 第一:獲取電話服務管理器TelephonyManager manager = this.getSystemService(TELEPHONY_SERVICE);
- * 第二:經過TelephonyManager註冊咱們要監聽的電話狀態改變事件。manager.listen(new MyPhoneStateListener(),
- * PhoneStateListener.LISTEN_CALL_STATE);這裏的PhoneStateListener.LISTEN_CALL_STATE就是咱們想要
- * 監聽的狀態改變事件,初次以外,還有不少其餘事件哦。
- * 第三步:經過extends PhoneStateListener來定製本身的規則。將其對象傳遞給第二步做爲參數
- * 第四步:這一步很重要,那就是給應用添加權限。android.permission.READ_PHONE_STATE
- *
- *
- */
- public class PhoneCallStateActivity extends Activity {
- TelephonyManager manager ;
- String result = "監聽電話狀態:/n";
- TextView textView ;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //獲取電話服務
- manager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
- // 手動註冊對PhoneStateListener中的listen_call_state狀態進行監聽
- manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
-
- textView = (TextView) findViewById(R.id.textView1);
- textView.setText(result);
- }
- /***
- * 繼承PhoneStateListener類,咱們能夠從新其內部的各類監聽方法
- *而後經過手機狀態改變時,系統自動觸發這些方法來實現咱們想要的功能
- */
- class MyPhoneStateListener extends PhoneStateListener{
-
- @Override
- public void onCallStateChanged(int state, String incomingNumber) {
- switch (state) {
- case TelephonyManager.CALL_STATE_IDLE:
- result+=" 手機空閒起來了 ";
- break;
- case TelephonyManager.CALL_STATE_RINGING:
- result+=" 手機鈴聲響了,來電號碼:"+incomingNumber;
- break;
- case TelephonyManager.CALL_STATE_OFFHOOK:
- result+=" 電話被掛起了 ";
- default:
- break;
- }
- textView.setText(result);
- super.onCallStateChanged(state, incomingNumber);
- }
-
- }
-
-
- }
這裏必定要注意,別忘記給應用註冊權限: ide
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> this
---------------------------------------------------------------------------------------- spa