Как узнать имя позвонившего абонента в Android?

Есть слушатель входящих звонков, в котором удается получить только номер абонента. Необходимо получить и его имя в телефонной книге.

Вот слушатель:

public class InterceptCall extends BroadcastReceiver {

private static boolean incomingCall = false;
private static final String TAG = "My info";
String phoneNumber;

@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
        String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        if (phoneState.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
            //Трубка не поднята, телефон звонит
            phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
            incomingCall = true;
            if (phoneNumber != null && MainActivity.isConnected) {
                Log.i(TAG, "Show window: " + phoneNumber);
                //MainActivity.ESP32.callScreen(phoneNumber);
            }
        } else if (phoneState.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {

            if (incomingCall) {
                incomingCall = false;
                if (MainActivity.isConnected) {
                    Log.i(TAG, "Close window.");
                    MainActivity.ESP32.onHome();
                }
            }
        } else if (phoneState.equals(TelephonyManager.EXTRA_STATE_IDLE)) {

            if (incomingCall) {
                incomingCall = false;
                if (MainActivity.isConnected) {
                    Log.i(TAG, "Close window.");
                    MainActivity.ESP32.onHome();
                }
            }
        }
    }
  }
};

Ответы (0 шт):