Android上的通话拦截

she*_*law 5 android phone-number intercept

目前,可以在Android上进行电话拦截吗?达到可以在拨打电话时获取电话号码的级别。

she*_*ary 4

是的,你可以......扩展 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 :)
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

您需要在 AndroidManifest.xml 上添加 BroadcastReceiver,如下所示

<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>
Run Code Online (Sandbox Code Playgroud)