Как узнать имя позвонившего абонента в 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();
}
}
}
}
}
};