在Android上以编程方式获取来电号码 [英] Get incoming call number programmatically on android
本文介绍了在Android上以编程方式获取来电号码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用android studio上的广播接收器获取来电信息.以下是我尝试过的方法:
I am trying to get incoming call info using broadcast receivers on android studio. following are the methods i tried:
<receiver android:name=".receivers.IncomingCalls">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
我尝试了此接收者的意图:
On this receiver's intent i tried:
方法一:
incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
方法二:
final String state1 = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, final String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
incnumber=incomingNumber;
}
},PhoneStateListener.LISTEN_CALL_STATE);
方法三:
incnumber=intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
这三种方法都返回空的incnumber.
All the three methods return empty incnumber.
顺便说一句,我正在android pie上运行此项目,请帮帮我.
By the way, I am running this project on android pie, Please help me out.
推荐答案
尝试这种方式...权限
Try this way... permission
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
让广播接收者说ServiceReceiver在清单中分配其动作.
Make a Broadcast receiver say ServiceReceiver assign its action in Manifest.
<receiver android:name=".ServiceReceiver" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
ServiceReceiver.Java
public class ServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
System.out.println("incomingNumber : "+incomingNumber);
}
},PhoneStateListener.LISTEN_CALL_STATE);
}
}
这篇关于在Android上以编程方式获取来电号码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文