我正在尝试获取来电的来电号码。我搜索并找到了这个在 Android 中检索来电的电话号码 https://stackoverflow.com/questions/1853220/retrieve-incoming-calls-phone-number-in-android。
我的问题是我无法在 4.0.3 以上的版本中“传入号码”。
如果我做错了什么,或者如何在 4.0.3 以上版本中获取来电号码,请指导我。
提前致谢。
这是代码:
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);
在清单中创建接收器:
<receiver android:name=".PhoneState">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
添加此权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
创建广播接收器:
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;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)