안녕하세요. 일레븐 테크놀로지입니다.
현상과 질문거리에대해 말씀드릴께요.
현상 : 첫 연결은 잘되나, 종료후 다시 연결하면 connect 상태에서 완료상태로 넘어가지 않음.
절차 :
activity를 finish 하여 remon.close 와 onDestroy 까지 확인되는 상태로 첫 연결 종료
종료후 블루투스나 이어폰등은 사용하지 않는데 ServiceConnection android.bluetooth.BluetoothHeadset 라는 에러가 뜸
I/MIN: onStop
I/MIN: onDestroy
D/ConnectivityManager.CallbackHandler: CM callback handler got msg 524292
E/ActivityThread: Activity kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall has leaked ServiceConnection android.bluetooth.BluetoothHeadset$2@eef149f that was originally bound here
android.app.ServiceConnectionLeaked: Activity kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall has leaked ServiceConnection android.bluetooth.BluetoothHeadset$2@eef149f that was originally bound here
at android.app.LoadedApk$ServiceDispatcher.(LoadedApk.java:1134)
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1028)
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:2155)
at android.app.ContextImpl.bindServiceAsUser(ContextImpl.java:2145)
at android.content.ContextWrapper.bindServiceAsUser(ContextWrapper.java:566)
at android.bluetooth.BluetoothHeadset.doBind(BluetoothHeadset.java:304)
at android.bluetooth.BluetoothHeadset.(BluetoothHeadset.java:297)
at android.bluetooth.BluetoothAdapter.getProfileProxy(BluetoothAdapter.java:1808)
at com.remon.remondroid.core.BluetoothHeadsetManager.start(BluetoothHeadsetManager.java:85)
at com.remon.remondroid.core.AppRTCAudioManager.init(AppRTCAudioManager.java:254)
at com.remon.remondroid.core.MediaManager.createAudioManager(MediaManager.java:78)
at com.remon.remondroid.Remon.(Remon.java:67)
at kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall.createPlayRTCInstance(ActVideoCall.java:1142)
at kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall.onCreate(ActVideoCall.java:259)
at android.app.Activity.performCreate(Activity.java:6288)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
에러는 무시하고
재접속 시도 시 oncreate 부터 init wait connect 상태 변화까진 도달하나(양쪽 채널은 같음을 확인), 완료 상태에 가지 않고 finish, close, onDestory까지 종료 상태가 되나 아래와 같이 remon.close를 했음에도 불구하고
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5) 로그가 계속 뜨는것으로 보아
webRtcAudioManager가 계속 살아있는거라 추측
I/MIN: finish
E/ViewRootImpl: sendUserActionEvent() mView == null
I/MIN: onPause
I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@b52c1c1 time:29094149
I/EglRenderer: EglRenderer: remote_video_view: Duration: 4001 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: 0.0. Average render time: NA. Average swapBuffer time: NA.
I/MIN: onStop
I/MIN: onDestroy
E/ActivityThread: Activity kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall has leaked IntentReceiver com.remon.remondroid.core.AppRTCAudioManager$3@3008c3fe that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Activity kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall has leaked IntentReceiver com.remon.remondroid.core.AppRTCAudioManager$3@3008c3fe that was originally registered here. Are you missing a call to unregisterReceiver()?
at android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:960)
at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:761)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:2015)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1995)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1989)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:503)
at com.remon.remondroid.core.AppRTCAudioManager.registerForWiredHeadsetIntentBroadcast(AppRTCAudioManager.java:375)
at com.remon.remondroid.core.AppRTCAudioManager.init(AppRTCAudioManager.java:249)
at com.remon.remondroid.core.MediaManager.createAudioManager(MediaManager.java:78)
at com.remon.remondroid.Remon.(Remon.java:67)
at kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall.createPlayRTCInstance(ActVideoCall.java:1142)
at kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall.onCreate(ActVideoCall.java:259)
at android.app.Activity.performCreate(Activity.java:6288)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
E/ActivityThread: Activity kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall has leaked ServiceConnection android.bluetooth.BluetoothHeadset$2@33e7075f that was originally bound here
android.app.ServiceConnectionLeaked: Activity kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall has leaked ServiceConnection android.bluetooth.BluetoothHeadset$2@33e7075f that was originally bound here
at android.app.LoadedApk$ServiceDispatcher.(LoadedApk.java:1134)
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1028)
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:2155)
at android.app.ContextImpl.bindServiceAsUser(ContextImpl.java:2145)
at android.content.ContextWrapper.bindServiceAsUser(ContextWrapper.java:566)
at android.bluetooth.BluetoothHeadset.doBind(BluetoothHeadset.java:304)
at android.bluetooth.BluetoothHeadset.(BluetoothHeadset.java:297)
at android.bluetooth.BluetoothAdapter.getProfileProxy(BluetoothAdapter.java:1808)
at com.remon.remondroid.core.BluetoothHeadsetManager.start(BluetoothHeadsetManager.java:85)
at com.remon.remondroid.core.AppRTCAudioManager.init(AppRTCAudioManager.java:254)
at com.remon.remondroid.core.MediaManager.createAudioManager(MediaManager.java:78)
at com.remon.remondroid.Remon.(Remon.java:67)
at kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall.createPlayRTCInstance(ActVideoCall.java:1142)
at kr.co.xitech.androidcounselor.ActVideoCall.ActVideoCall.onCreate(ActVideoCall.java:259)
at android.app.Activity.performCreate(Activity.java:6288)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
I/EglRenderer: EglRenderer: remote_video_view: Duration: 4004 ms. Frames received: 0. Dropped: 0. Rendered: 0. Render fps: 0.0. Average render time: NA. Average swapBuffer time: NA.
D/ActVideoCall: onStateChange CLOSE,mLocalChannelID:null
I/EglRenderer: EglRenderer: local_video_view: Releasing.
I/EglRenderer: EglRenderer: local_video_view: Already released
I/EglRenderer: EglRenderer: remote_video_view: Releasing.
I/EglRenderer: EglRenderer: remote_video_view: eglBase detach and release.
I/EglRenderer: EglRenderer: remote_video_view: Releasing done.
D/AppRTCAudioManager: close
W/System.err: java.lang.IllegalArgumentException: Receiver not registered: com.remon.remondroid.core.AppRTCAudioManager$3@3008c3fe
W/System.err: at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:822)
W/System.err: at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:2038)
W/System.err: at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:528)
W/System.err: at com.remon.remondroid.core.AppRTCAudioManager.unregisterForWiredHeadsetIntentBroadcast(AppRTCAudioManager.java:381)
W/System.err: at com.remon.remondroid.core.AppRTCAudioManager.close(AppRTCAudioManager.java:264)
W/System.err: at com.remon.remondroid.core.MediaManager.close(MediaManager.java:311)
W/System.err: at com.remon.remondroid.RemonContext.close(RemonContext.java:105)
W/System.err: at com.remon.remondroid.network.WebSocketClientHandler.channelRead0(WebSocketClientHandler.java:178)
W/System.err: at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
W/System.err: at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
W/System.err: at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
W/System.err: at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
W/System.err: at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
W/System.err: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
W/System.err: at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
W/System.err: at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129)
W/System.err: at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:651)
W/System.err: at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:536)
W/System.err: at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:490)
W/System.err: at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:450)
W/System.err: at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
W/System.err: at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
W/System.err: at java.lang.Thread.run(Thread.java:818)
D/ActVideoCall: onStateChange FAIL,mLocalChannelID:null
I/System.out: WebSocket Client disconnected!
I/EglRenderer: EglRenderer: remote_video_view: Quitting render thread.
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: KnoxVpnUidStorageknoxVpnSupported API value returned is false
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
I/WebRtcAudioManager: WebRtcAudioManager: VOICE_CALL stream volume: 5 (max=5)
close에서 뭔가 소스를 제거하지 않는것이 있는것인지… close할때 유의점이 따로 있는것인지 잘 모르겠습니다.
질문이 이상하거나 하면 연락 한번 주세요^^
그럼 수고하세요.