2017-06-12 120 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