перехват вызова на андроид - PullRequest
5 голосов
/ 04 мая 2011

в настоящее время, возможен ли перехват вызовов на Android? до уровня, на котором я могу получить номер телефона при совершении вызова.

Ответы [ 2 ]

4 голосов
/ 12 апреля 2012

да, вы можете .... расширить BroadcastReceiver и переопределить onReceive следующим образом

public class CallListener extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
            String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER);
            System.out.println(phoneNumber);

            if (phoneNumber != null&& CallService.phoneNumber.equals("ANY_NUMBER_YOU_WANNA_INTERCEPT_ON")) {

                //do what you want to do :)
            }
        }

    }

, и вам необходимо добавить BroadcastReceiver в AndroidManifest.xml следующим образом

<receiver android:name=".CallListener" android:permission="android.permission.PROCESS_OUTGOING_CALLS">
        <intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
        </intent-filter>
 </receiver>
1 голос
/ 04 мая 2011

Вы можете использовать PhoneStateListener с настраиваемым широковещательным приемником , который доставит вам onCallStateChanged(int state, String incomingNumber).

(вам также понадобится <uses-permission android:name="android.permission.READ_PHONE_STATE" /> в вашем AndroidManifest.)

...