2012-12-19 6 views
11

Ho una rapida app di esempio che sto cercando di creare, per dimostrare semplici chiamate SIP da e verso un Nexus 7. Il dispositivo sta attualmente eseguendo Android 4.2.1.API SIP Android: mostra supportati, tuttavia errore "non supportato"

LogCat mostra l'errore:

SipBroadcastRequest/SIP VOIP not supported: com.android.phone.SIP_REMOVE_PHONE

vedo dalla documentazione API (e il codice) che questo accade se SipManager.isApiSupported (contesto Context) restituisce false. Per buona misura, ho controllato entrambi:

SipManager.isVoipSupported(this);
SipManager.isApiSupported(this);

ed entrambi return true. Vedo anche (dal codice API) che SE la chiamata api restituisce false, SipManager.newInstance(Context context) restituirà null. Quando creo un manager con SipManager.newInstance(this);, restituisco un gestore valido.

Vedo molti post per problemi simili, ma non ne ho trovato nessuno che riporta true per la chiamata SipManager.isVoipSupported(Context context). Qualche idea?

Nota: non sono sicuro che ciò sia importante o meno, ma cSipSimple (un'altra app SIP/Voip per Android) funziona su questo dispositivo.

UPDATE (12/20/12): Ho provato SipDemo per suggerimento di pboy. Neanche questo funziona. Sia l'app che la mia app falliscono durante la fase di registrazione. Usando il debugger, interrompo la callback onRegistrationFailed per lo SipRegistrationListener. Da qui posso vedere uno int errorCode di -9 e uno String errorMessage di "0". Ho guardato questo codice di errore, e corrisponde al seguente (preso dalla documentazione SIP API):

public static final int IN_PROGRESS 

Added in API level 9
The client is in a transaction and cannot initiate a new one.
Constant Value: -9 (0xfffffff7)

non ho altri programmi in esecuzione SIP. La mia app è stata appena installata e attualmente non è in esecuzione. Non sono sicuro di quale altra transazione sarebbe nel mezzo?

+1

CSipSimple utilizza una libreria esterna, quindi non dice se funziona davvero o meno. Prova SipDemo, usa la libreria nativa. – plmaheu

risposta

0

Spero che tu abbia menzione seguente autorizzazione nel vostro manifesto

<uses-permission android:name="android.permission.USE_SIP" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-feature android:name="android.hardware.sip.voip" android:required="true" /> 
<uses-feature android:name="android.hardware.wifi" android:required="true" /> 
<uses-feature android:name="android.hardware.microphone" android:required="true" /> 

Inoltre si prega di assicurarsi che si sta verificando questo quando si è connessi con Wi-Fi perché SIP androide è fornire connessione quando si è connessi con il wifi non con altra rete.