Android SIP API: показывает поддержку, но ошибка "не поддерживается"

У меня есть быстрое приложение для примера, которое я пытаюсь создать, чтобы продемонстрировать простые вызовы SIP на и с Nexus 7. В настоящее время устройство работает под управлением Android 4.2.1.

LogCat показывает ошибку:

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

Я вижу из документов API (и кода), что это происходит, если SipManager.isApiSupported(контекст контекста) возвращает false. Для хорошей меры я проверил оба варианта:

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

и оба возвращают true. Я также вижу (из кода API), что если api-вызов возвращает false, SipManager.newInstance(Context context) вернет null. Когда я создаю менеджера с SipManager.newInstance(this);, я возвращаю действительный менеджер.

Я вижу много сообщений для подобных проблем, но не нашел ни одного отчета true для вызова SipManager.isVoipSupported(Context context). Любые идеи?

Примечание. Я не уверен, что это важно или нет, но cSipSimple (другое приложение SIP/Voip для Android) работает на этом устройстве.

ОБНОВЛЕНИЕ (12/20/12): Я попробовал SipDemo за предложение pboy. Это тоже не работает. И приложение, и мое приложение выходят из строя на этапе регистрации. Используя отладчик, я разбиваю обратный вызов onRegistrationFailed для SipRegistrationListener. Отсюда я могу видеть int errorCode от -9 и a String errorMessage от "0". Я просмотрел этот код ошибки и соответствует следующему (взятому из документов SIP API):

public static final int IN_PROGRESS  

Добавлено в уровень API 9
Клиент находится в транзакции и не может инициировать новый.
Постоянное значение: -9 (0xfffffff7)

У меня нет других программ SIP. Мое приложение только недавно установлено и в настоящее время не работает. Я не уверен, какая другая транзакция была бы в середине?

Ответ 1

Я надеюсь, что вы указали в своем манифесте следующее разрешение,

<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" />

Кроме того, убедитесь, что вы тестируете это, когда вы подключены к Wi-Fi, поскольку Sroid для Android поддерживает соединение, когда вы подключены к Wi-Fi не с другой сетью.