2017-06-12 125 views

回答

0

只需使用TelephonyManager代替這是在API中加入1

實現這個類的一個示例場景如下:

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.telephony.PhoneStateListener; 
import android.telephony.TelephonyManager; 

public class MainActivity extends AppCompatActivity { 

    private PhoneStateListener mPhoneStateListener = new PhoneStateListener() { 
     @Override 
     public void onCallStateChanged(int state, String incomingNumber) { 
      switch (state) { 
       case TelephonyManager.CALL_STATE_RINGING: 
        // TODO: Code your functionality response here 

        break; 

       // TODO: Configure other phone state cases here if you want 
      } 
     } 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     TelephonyManager telephonyManager = (TelephonyManager) 
       getSystemService(Context.TELEPHONY_SERVICE); 
     telephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); 
    } 
} 

要記住,手機狀態允許進入你的清單文件:

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

讓我知道這是否回答你的問題。

+0

不幸的是,我找到了以前的解決方案。我正在尋找具有更詳細狀態的解決方案,如「call」類提供:STATE_ACTIVE,STATE_CONNECTING,STATE_DIALING,STATE_DISCONNECTED,STATE_DISCONNECTING,STATE_HOLDING,STATE_NE,STATE_PULLING_CALL,STATE_RINGING。不幸的是,我一直在尋找互聯網上的任何地方,我還沒有找到使用「通話」類的例子。在這裏我發現了幾個沒有回答的類似查詢。 – Mokrys

+0

感謝上一個答案,但它不能解決我的問題。我想問一下,如果存在或不存在,是否可以檢查被叫電話號碼的狀態? – Mokrys