Я нашел способ сделать то, что я просил вчера, поэтому я делюсь этим здесь для всех, кто заинтересован.Хитрость заключалась в том, чтобы поймать переданное намерение NEW_OUTGOING_CALL в BroadcastReceiver, а не любое событие, связанное с выбором контактов, как я думал.
Итак ... следуйте инструкциям.элемент application файла AndroidManifest.xml добавляет элемент получателя ... Атрибут android: name является классом, который будет расширяться из BroadcastReceiver (поясняется ниже).
<receiver android:name=".OutgoingCallDetection">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"
android:priority="0" />
ааа!И вам понадобится специальное разрешение ...
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
Метод onReceive в классе, который расширяет BroadcastReceiver (OutgoingCallDetection в этом примере).Обратите внимание, что setResultData (null) - это то, что предотвращает выполнение вызова самой системой.
public void onReceive(Context arg0, Intent arg1) {
setResultData(null);
// Start an activity and then show a dialog, or something...
}
Вот оно и работает по мере необходимости.