得到所有Android版本的来电电话号码 [英] Get phone number of incoming call in all android versions
问题描述
我试图获取来电的来电号码。我搜索,发现这个
<一href=\"http://stackoverflow.com/questions/1853220/retrieve-incoming-calls-phone-number-in-android\">Retrieve在Android的来电的电话号码。
我的问题是,我没能来电号码,在以上版本4.0.3。
请指导我,如果我做错什么,或者如何让来电号码在上面的版本4.0.3。
提前致谢。
这里是code:
TelephonyManager电话=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(新PhoneStateListener(){
公共无效onCallStateChanged(INT状态,弦乐incomingNumber){
super.onCallStateChanged(州,incomingNumber);
开关(州){
在Android的最新版本//没有得到来电号码
Log.e(Utils.TAGincomingNumber:+ incomingNumber);
}
}
},PhoneStateListener.LISTEN_CALL_STATE);
在您的清单中创建一个接收器:
&lt;接收机器人:名字=。PhoneState&GT;
&所述;意图滤光器&gt;
&lt;作用机器人:名字=android.intent.action.PHONE_STATE/&GT;
&所述; /意图滤光器&gt;
&LT; /接收器&GT;
添加此权限:
&LT;使用许可权的android:NAME =android.permission.READ_PHONE_STATE/&GT;
创建广播接收器:
公共类PhoneState扩展广播接收器{ @覆盖
公共无效的onReceive(上下文的背景下,意图意图){ TelephonyManager TM =(TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE); 开关(tm.getCallState()){ 案例TelephonyManager.CALL_STATE_RINGING:
串phoneNr = intent.getStringExtra(incoming_number);
Toast.makeText(上下文,phoneNr,Toast.LENGTH_LONG).show();
打破;
}
}
}
I am trying to fetch incoming number of incoming call. I searched and found this Retrieve incoming call's phone number in Android. My issue is that I am not able to "incoming number" in version above 4.0.3. Please guide me if I am doing anything wrong ,or how to get the incoming number in version above 4.0.3. Thanks in advance. Here is code :
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
// not getting incoming number in latest version of android
Log.e(Utils.TAG, "incomingNumber: "+incomingNumber);
}
}
},PhoneStateListener.LISTEN_CALL_STATE);
Create a receiver in your manifest:
<receiver android:name=".PhoneState">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
add this permission:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
create the broadcast receiver:
public class PhoneState extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
TelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
switch (tm.getCallState()) {
case TelephonyManager.CALL_STATE_RINGING:
String phoneNr= intent.getStringExtra("incoming_number");
Toast.makeText(context, phoneNr,Toast.LENGTH_LONG).show();
break;
}
}
}
这篇关于得到所有Android版本的来电电话号码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!