CallRedirectionService Реализация не работает - PullRequest
0 голосов
/ 11 июня 2019

Android Q представил CallRedirectionService API - кажется, что один из способов использования сторонних приложений - это отмена вызовов и перенаправление их через VoIP - по существу перехват телефонных звонков.

Я пытался реализовать этот класс, как показано ниже

public class CallMonitorService extends CallRedirectionService {
    private static final String TAG = "CallMonitorService";

    public CallMonitorService() {
    }

    @Override
    public void onPlaceCall(Uri uri, PhoneAccountHandle phoneAccountHandle, boolean b) {
        Log.e(TAG, "onPlaceCall:### ");
    }


}

Как вы можете видеть, я переопределяю onPlaceCall, который является абстрактным методом в CallRedirectionService, и просто сохраняю инструкцию log, чтобы проверить / проверить, вызван ли этот хук метода обратного вызова платформой Android.

Я добавил этот сервис в свой Manifest.xml, а также ниже, что описано в Исходном коде CallRedirectionService класса

<service
                android:name=".CallMonitorService"
                android:permission="android.permission.BIND_REDIRECTION_SERVICE"
                android:enabled="true"
                android:exported="true">
            <intent-filter>
                <action android:name="android.telecom.CallRedirectionService"/>
            </intent-filter>
        </service>

Я думаю, что когда система Android выполняет исходящий вызов, будет вызван этот onPlaceCall, и тогда мы сможем написать собственный код для дальнейших действий с исходящим вызовом. Я не на 100% уверен, что именно так должен работать CallRedirectionService. Кстати, на developer.android.com нет примера того, как реализовать CallRedirectionService на момент написания этой статьи. Я установил оба minSdkVersion 29 targetSdkVersion 29 в моем build.gradle

Однако при совершении звонка onPlaceCall внутри моего Сервиса не вызывается.

Я использую Android Q Emulator для тестирования, так как у меня нет телефона Android под управлением Android Q, чтобы проверить это - это не может быть проверено на эмуляторе Android путем размещения эмулированного телефонного звонка или Что еще мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...