質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

1回答

2408閲覧

android.net.sip.SipManager.setRegistrationListener が無反応・・・

sunskysoft

総合スコア17

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2017/05/06 16:59

編集2017/05/07 10:39

###前提・実現したいこと
android.net.sip APIを使った電話アプリを作っています。
サンプルの SipDemo の処理をほぼそのまま流用しているのですが、動作しません。

###発生している問題・エラーメッセージ
ほぼ SipDemo からソースをコピペしています。
SipManager#open の後に、SipManager#setRegistrationListenerでリスナーを設定するのですが、コールバックが全く呼ばれない状態です。

###該当のソースコード

try { SipProfile.Builder builder = new SipProfile.Builder(username, domain); builder.setPassword(password); me = builder.build(); Intent i = new Intent(); i.setAction("com.mydomain.myapplication.INCOMING_CALL"); PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, i, Intent.FILL_IN_DATA); manager.open(me, pi, null); // This listener must be added AFTER manager.open is called, // Otherwise the methods aren't guaranteed to fire. manager.setRegistrationListener(me.getUriString(), new SipRegistrationListener() { public void onRegistering(String localProfileUri) { updateStatus("Registering with SIP Server..."); } public void onRegistrationDone(String localProfileUri, long expiryTime) { updateStatus("Ready"); } public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage) { updateStatus("Registration failed. Please check settings."); } }); } catch (ParseException pe) { updateStatus("Connection Error."); } catch (SipException se) { updateStatus("Connection error."); }

マニフェストなども正しく書き、権限も与えています。

###試したこと
同じデバイス(nexus 7 2013)上で、サンプルの SipDemo は問題なく動作していますが、ほぼそのまま流用したテストプロジェクト(上記)ではコールバックに反応がない。

その後、SipDemo とパッケージ名以外はほぼ同じのプロジェクトを新規作成してみました(SipDemo2)。
SipDemo2 を動かしてみると、onRegistrationFailed にきましたが、レジ成功はしません。以下の質問者と同じ状態です。
http://stackoverflow.com/questions/42627285/android-sipmanager-registration-failed/42756635
かつ、なぜか元のSipDemo の方がコールバックが呼ばれなくなりました。。。

###補足情報(言語/FW/ツール等のバージョンなど)
Android Studio 2.3.1
Android 6.x (Nexus 7)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

マニフェストファイルの内容もコピーしましたか?

投稿2017/05/06 18:27

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sunskysoft

2017/05/07 01:52

はい。 ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mydomain.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".IncommingCallReceiver" android:label="Call Receiver"/> </application> <uses-sdk android:minSdkVersion="9" /> <uses-permission android:name="android.permission.USE_SIP" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <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" /> </manifest> ``` マニフェスト以外で必要なものがあるのでしょうか?
yona

2017/05/07 02:01

Android端末の設定からパーミッションの許可はしていますか?
sunskysoft

2017/05/07 04:16

はい、許可しないと落ちるので。
sunskysoft

2017/05/07 10:40

Android をリスタートすると、最初に動かしたアプリはレジストできるようになりました。。。 もしかして、android.net.sip を使ったアプリは1つしか使えないなどの制限があるのでしょうか??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問