android之通過phoneStateListener監聽電話狀態改變

來源:互聯網
上載者:User

當我們外部打電話過來的時候,當前的資訊會自動的進行改變。

-------------------------------------------------------------------------------

activity代碼:

package cn.com.chenzheng_java;</p><p>import android.app.Activity;<br />import android.os.Bundle;<br />import android.telephony.PhoneStateListener;<br />import android.telephony.TelephonyManager;<br />import android.widget.TextView;<br />/**<br /> *<br /> * @author chenzheng_java<br /> * @description 通過該執行個體,我們可以看到,如果我們想要監聽電話的撥打狀況,需要這麼幾步<br /> * 第一:擷取電話語音管理器TelephonyManager manager = this.getSystemService(TELEPHONY_SERVICE);<br /> * 第二:通過TelephonyManager註冊我們要監聽的電話狀態改變事件。manager.listen(new MyPhoneStateListener(),<br /> * PhoneStateListener.LISTEN_CALL_STATE);這裡的PhoneStateListener.LISTEN_CALL_STATE就是我們想要<br /> * 監聽的狀態改變事件,初次之外,還有很多其他事件哦。<br /> * 第三步:通過extends PhoneStateListener來定製自己的規則。將其對象傳遞給第二步作為參數<br /> * 第四步:這一步很重要,那就是給應用添加許可權。android.permission.READ_PHONE_STATE<br /> *<br /> *<br /> */<br />public class PhoneCallStateActivity extends Activity {<br />TelephonyManager manager ;<br />String result = "監聽電話狀態:/n";<br /> TextView textView ;<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);<br /> //擷取電話語音<br /> manager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);<br /> // 手動註冊對PhoneStateListener中的listen_call_state狀態進行監聽<br /> manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);</p><p> textView = (TextView) findViewById(R.id.textView1);<br /> textView.setText(result);<br />}<br /> /***<br /> * 繼承PhoneStateListener類,我們可以重新其內部的各種監聽方法<br /> *然後通過手機狀態改變時,系統自動觸發這些方法來實現我們想要的功能<br /> */<br /> class MyPhoneStateListener extends PhoneStateListener{</p><p>@Override<br />public void onCallStateChanged(int state, String incomingNumber) {<br />switch (state) {<br />case TelephonyManager.CALL_STATE_IDLE:<br />result+=" 手機空閑起來了 ";<br />break;<br />case TelephonyManager.CALL_STATE_RINGING:<br />result+=" 手機鈴聲響了,來電號碼:"+incomingNumber;<br />break;<br />case TelephonyManager.CALL_STATE_OFFHOOK:<br />result+=" 電話被掛起了 ";<br />default:<br />break;<br />}<br />textView.setText(result);<br />super.onCallStateChanged(state, incomingNumber);<br />}</p><p> }</p><p>}

這裡一定要注意,別忘記給應用註冊許可權:

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

----------------------------------------------------------------------------------------

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.