Мы можем легко получить номер текущего вызова, используя BroadcastReceiver.
В функции onReceive класса BroadcastReceiver вы должны написать код, подобный следующему:
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER).toString();
Log.w("", "Number---->"+number);
Toast.makeText(context, "Intent Received", Toast.LENGTH_LONG).show();
}
и в вашем классе деятельности
MReciever mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mReceiver = new MReciever();
IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
registerReceiver(mReceiver, filter);
}
protected void onDestroy() {
unregisterReceiver(mReceiver);
};
И в файле манифеста Android вы должны объявить получателя как
<receiver android:name=".YourReceiverClass" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
Я думаю, это поможет вам.