Android Native SIP не регистрируется на Android 9 (уровень API 28) - PullRequest
0 голосов
/ 07 февраля 2019

Мой метод ниже вызывается на onStartCommand класса обслуживания и отлично работает для API уровня 27 и ниже.Затем SIP-вызов успешно инициируется без каких-либо проблем.

Но для API уровня 28 sipManager не открывается и mSipManager.setRegistrationListener не вызывается.Так что SIP onRegistering, onRegistrationDone или onRegistrationFailed не вызывается.Предупреждение или ошибка не найдены.Что я должен сделать для API уровня 28?

public void initializeLocalProfile() {
    try {
        SipProfile.Builder builder = new SipProfile.Builder(sip_username, "" + sipServerDomain);
        builder.setPort(sipPort);
        builder.setPassword(sip_password);
        mSipProfile = builder.build();

        Intent i = new Intent();
        i.setAction("android.SipDemo.INCOMING_CALL");
        PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);

        mSipManager = SipManager.newInstance(this);
        mSipManager.open(mSipProfile, pi, null);

        if (mSipManager.isOpened(sip_username + "@" + sipServerDomain)) {
            mSipManager.setRegistrationListener(mSipProfile.getUriString(), new SipRegistrationListener() {
                @Override
                public void onRegistering(String localProfileUri) {
                    Log.d(TAG, "Registering with SIP Server..., localProfileUri2: " + localProfileUri);
                }

                @Override
                public void onRegistrationDone(String localProfileUri, long expiryTime) {
                    Log.d(TAG, "SIP onRegistrationDone, expiryTime: " + expiryTime);
                    ((AeroApplication) getApplication()).setRegisteredSIP(true);
                }

                @Override
                public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage) {
                    Log.d(TAG, "SIP Registration failed :" + errorMessage + ", errorCode :" + errorCode);
                }
            });
        } else {
            Toast.makeText(context, "SIP SipManager not opened, try again.", Toast.LENGTH_SHORT).show();
        }
    } catch (ParseException pe) {
        Log.d(TAG, " SIP ParseException : " + pe.getMessage());
    } catch (SipException se) {
        Log.d(TAG, "SIP Exception: " + se.getMessage());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...