2012-12-19 25 views
11

Tôi có ứng dụng mẫu nhanh Tôi đang cố gắng xây dựng, để trình diễn các cuộc gọi SIP đơn giản đến và từ Nexus 7. Thiết bị hiện đang chạy Android 4.2.1.API SIP Android: Hiển thị hỗ trợ, nhưng lỗi 'không được hỗ trợ'

LogCat hiển thị lỗi:

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

tôi nhìn thấy từ các tài liệu API (và mã) mà điều này xảy ra nếu SipManager.isApiSupported (Context ngữ cảnh) trả về false. Đối với biện pháp tốt, tôi đã kiểm tra cả hai:

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

và cả hai trở thành sự thật. Tôi cũng thấy (từ mã API) rằng NẾU cuộc gọi api trả về false, SipManager.newInstance(Context context) sẽ trả lại null. Khi tôi tạo người quản lý với SipManager.newInstance(this); Tôi có được người quản lý hợp lệ.

Tôi thấy rất nhiều bài đăng cho các sự cố tương tự nhưng không tìm thấy báo cáo nào có số true cho cuộc gọi SipManager.isVoipSupported(Context context). Bất kỳ ý tưởng?

Lưu ý: Tôi không chắc liệu điều này có quan trọng hay không, nhưng cSipSimple (một ứng dụng SIP/Voip khác cho android) KHÔNG hoạt động trên thiết bị này.

CẬP NHẬT (12/20/12): Tôi đã thử đề xuất của SipDemo theo pboy. Điều đó không có tác dụng. Cả ứng dụng và ứng dụng của tôi đều không thành công trong bước đăng ký. Sử dụng trình gỡ lỗi, tôi ngắt trong số gọi lại onRegistrationFailed cho số SipRegistrationListener. Từ đây tôi có thể thấy một số int errorCode của -9 và một số String errorMessage của "0". Tôi nhìn lên mã lỗi này, và nó tương ứng với những điều sau đây (lấy từ các tài liệu 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)

tôi không có chương trình SIP khác đang chạy. Ứng dụng của tôi chỉ mới được cài đặt và hiện không chạy. Tôi không biết giao dịch nào khác sẽ ở giữa?

+1

CSipSimple sử dụng thư viện bên ngoài, vì vậy nó không cho biết nó có thực sự hoạt động hay không. Hãy thử SipDemo, nó sử dụng thư viện gốc. – plmaheu

Trả lời

0

tôi hy vọng bạn có đề cập đến sau đây cho phép trong biểu hiện của bạn,

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

Ngoài ra hãy chắc chắn rằng bạn đang thử nghiệm này khi bạn đang kết nối với wifi vì android SIP là cung cấp kết nối khi bạn đang kết nối với wifi không với mạng khác.