我可以获取本机拨号程序调用的号码吗?
我想要显示" toast消息"根据拨号号码提供有关每分钟成本的信息。但我不知道如何获得这个号码。
有样品可以显示"吐司信息"在通话期间拨打电话号码。
答案 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_标记中注明。