電話狀態的監聽。響鈴,靜止,接起
阿新 • • 發佈:2017-06-15
tel mis one iss cal list ack res extend
package com.sharpcj.telephonestatelistenerdemo; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; import android.util.Log; public class MainActivity extends AppCompatActivity { private TelephonyManager mTelephonyManager; private static final String TAG = "sharpcj:"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); } @Override protected void onResume() { super.onResume(); mTelephonyManager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE); //不要忘記了權限的添加 //<uses-permission Android:name="android.permission.READ_PHONE_STATE" /> } @Override protected void onDestroy() { super.onDestroy(); mTelephonyManager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_NONE); } class MyPhoneStateListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { /** * 返回電話狀態 * * CALL_STATE_IDLE 無任何狀態時 * CALL_STATE_OFFHOOK 接起電話時 * CALL_STATE_RINGING 電話進來時 */ switch (state) { case TelephonyManager.CALL_STATE_IDLE://無任何狀態時 logi("CALL_STATE_IDLE"); break; case TelephonyManager.CALL_STATE_RINGING://電話進來時 logi("CALL_STATE_RINGING"); break; case TelephonyManager.CALL_STATE_OFFHOOK://接起電話時 logi("CALL_STATE_OFFHOOK"); break; default: super.onCallStateChanged(state, incomingNumber); break; } } } public void logi(String s) { Log.i(TAG, "joy:---" + s); } }
電話狀態的監聽。響鈴,靜止,接起