我可以获取本机拨号器呼叫的号码吗?

时间:2014-07-24 19:18:50

标签: android phone-call

我可以获取本机拨号程序调用的号码吗?

我想要显示" toast消息"根据拨号号码提供有关每分钟成本的信息。但我不知道如何获得这个号码。

有样品可以显示"吐司信息"在通话期间拨打电话号码。

1 个答案:

答案 0 :(得分:0)

是的,你可以做到。你需要实施PhoneStateListener

公共类CustomPhoneStateListener扩展了PhoneStateListener {

public static Boolean phoneRinging = false;

public void onCallStateChanged(int state, String incomingNumber) {

    switch (state) {
    case TelephonyManager.CALL_STATE_IDLE:
        Log.d("DEBUG", "IDLE");
        phoneRinging = false;
        break;
    case TelephonyManager.CALL_STATE_OFFHOOK:
        Log.d("DEBUG", "OFFHOOK");
        phoneRinging = false;
        break;
    case TelephonyManager.CALL_STATE_RINGING:
        Log.d("DEBUG", "RINGING");
        phoneRinging = true;

        break;
    }
}

}

要注册听众,请执行以下操作:

        CustomPhoneStateListener phoneListener = new CustomPhoneStateListener();
        telephony = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);

请注意,对某些电话信息的访问受权限保护。除非在其清单文件中声明了相应的权限,否则您的应用程序将不会收到受保护信息的更新。如果权限适用,则会在相应的LISTEN_标记中注明。