1.首先,我们需要获得 READ_CALL_LOG 和 READ_PHONE_STATE 权限。在 AndroidManifest.xml 文件中添加以下两行:
2.在 Android 应用程序中,我们可以使用 BroadCastReceiver 监听来电,并获取来电号码。创建一个类并扩展 BroadcastReceiver,并实现其 onReceive() 方法:
public class IncomingCallReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.PHONE_STATE")) { String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); //do something with incomingNumber } } }
3.在 AndroidManifest.xml 文件中,定义 IncomingCallReceiver 和我们在第 2 步中创建的权限:
4.最后,在应用程序中注册 BroadcastReceiver。为此,我们可以在 Activity 或 Application 中调用以下方法:
IncomingCallReceiver callReceiver = new IncomingCallReceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.intent.action.PHONE_STATE"); registerReceiver(callReceiver, intentFilter);
至此,我们可以从来电中获取电话号码,并在控制台中打印出来。请注意,这个方法只适用于来电,而无法获取呼出电话的号码。