android.net.sip.SipException: не удалось создать SipSession;Сеть недоступна? - PullRequest
0 голосов
/ 19 марта 2019

Разработка приложения вызова SIP (VOIP). Я искал решение этой проблемы. Я нашел несколько решений, чтобы понравиться:

  • использовать targetSdkVersion 9
  • Переустановка приложения и перезагрузка устройства решают проблему (я использую этот метод при возникновении ошибки)

Выше оба решения не являются хорошим решением и не являются удобными для пользователя. Итак, что будет лучшим решением для этой проблемы SIP?

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 25 марта 2019

Каким-то образом я обработал Ошибка из SIP Library .

Тем не менее, я ищу правильный ответ, но в настоящее время я отправил пользователю тост , чтобы перезапустить устройство как:

  try {
        val intent = Intent()
        intent.action = CALL_ACTION
        val pendingIntent = PendingIntent.getBroadcast(mContext?.applicationContext, 0, intent, Intent.FILL_IN_DATA)
        sipManager?.open(sipProfile, pendingIntent, null)
        sipManager?.setRegistrationListener(sipProfile!!.uriString,
                object : SipRegistrationListener {
                    override fun onRegistering(localProfileUri: String) {
                        Log.e(TAG, "onRegistering $localProfileUri")
                    }

                    override fun onRegistrationDone(localProfileUri: String, expiryTime: Long) {
                        Log.e(TAG, "onRegistrationDone $localProfileUri expiryTime=$expiryTime")
                    }

                    override fun onRegistrationFailed(localProfileUri: String, errorCode: Int, errorMessage: String) {
                        Log.e(TAG, "onRegistrationFailed $localProfileUri $errorMessage $errorCode")
                    }
                })
    } catch (pe: ParseException) {
        Log.e(TAG, pe.message!!)
    } catch (se: SipException) {
        Log.e(TAG, se.message!!)
        if (!sipManager?.isOpened(sipProfile?.uriString)!!) {
            //Just sent a toast to restart the device 
            Toast.makeText(this, "SIP Error - Please Restart Device and Try Again", Toast.LENGTH_SHORT).show()
        } else {
            Toast.makeText(this, se.message, Toast.LENGTH_SHORT).show()
        }
    }
...