From 173779d8fd18969a646052310c17e1739c42a9c9 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 12 十一月 2024 09:19:18 +0800 Subject: [PATCH] 1.0.9 --- HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java | 73 +++++++++++++++++++++++++++++++++++- 1 files changed, 70 insertions(+), 3 deletions(-) diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java index 7f0793d..85ef11d 100644 --- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java +++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/HDLLinphoneKit.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Build; import android.os.IBinder; @@ -26,6 +27,9 @@ import org.linphone.core.AuthInfo; import org.linphone.core.Call; import org.linphone.core.CallParams; +import org.linphone.core.ChatMessage; +import org.linphone.core.ChatMessageListener; +import org.linphone.core.ChatRoom; import org.linphone.core.Core; import org.linphone.core.CoreException; import org.linphone.core.Factory; @@ -83,6 +87,8 @@ */ public int missedCallsTime = 30; + public AudioManager audioManager; + private HDLLinphoneKit() { @@ -96,6 +102,21 @@ } } + } + + private void initAudioManager(Context context){ + if(audioManager == null){ + try{ + audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + }catch (Exception exception){ + + } + } + } + + public int getRingerMode() + { + return audioManager.getRingerMode(); } public boolean getMediaPlayerPlayingStatus(){ @@ -178,6 +199,7 @@ if (!HDLLinphoneService.isReady()) { CheckIfNeedstartService(); InitMediaPlayer(context); + initAudioManager(context); } else { } } @@ -507,7 +529,48 @@ mLinphoneCore.addProxyConfig(prxCfg);//娣诲姞浠g悊閰嶇疆銆傚鏋滃惎鐢ㄤ簡娉ㄥ唽锛岃繖灏嗗紑濮嬪湪浠g悊涓婃敞鍐屻�� mLinphoneCore.addAuthInfo(authInfo);//娣诲姞璁よ瘉淇℃伅鍒�,璇ヤ俊鎭墖娈靛皢鍦ㄦ墍鏈夐渶瑕佺殑SIP浜嬪姟涓娇鐢ㄨ韩浠介獙璇� mLinphoneCore.setDefaultProxyConfig(prxCfg);//璁剧疆榛樿浠g悊銆� + } + + public void sendSipMessage(String sipAddress, String message) { + try { + Core mLinphoneCore = HDLLinphoneService.getCore(); + if (mLinphoneCore == null) { + Log.e("Linphone", "Linphone Core 鏈垵濮嬪寲"); + return; + } + + // 瑙f瀽瀵规柟鐨凷IP鍦板潃 + Address address = mLinphoneCore.interpretUrl(sipAddress); + + // 寤虹珛瀵硅瘽 + ChatRoom chatRoom = mLinphoneCore.getChatRoom(address); + + // 鍒涘缓娑堟伅 + ChatMessage chatMessage = chatRoom.createMessageFromUtf8(message); + + // 鐩戝惉娑堟伅鐘舵�� + chatMessage.addListener(new ChatMessageListener() { + @Override + public void onChatMessageStateChanged(Core core, ChatMessage msg, ChatMessage.State state) { + if (state == ChatMessage.State.Delivered) { + Log.d("Linphone", "娑堟伅宸叉垚鍔熷彂閫�"); + } else if (state == ChatMessage.State.NotDelivered) { + Log.d("Linphone", "娑堟伅鍙戦�佸け璐�"); + } + } + }); + + // 鍙戦�佹秷鎭� + chatMessage.send(); + + } catch (Exception e) { + Log.e("Linphone", "娑堟伅鍙戦�佸け璐�", e); + e.printStackTrace(); + } + } + + /** * 鎻愪氦璐﹀彿鍜屽瘑鐮佹敞鍐屽埌鍏ㄨ閫氭湇鍔″櫒 @@ -579,10 +642,14 @@ if (addressToCall != null) { call = core.inviteAddressWithParams(addressToCall, params); // 璁剧疆澶栨斁 - for (AudioDevice audioDevice : HDLLinphoneService.getCore().getAudioDevices()) { - if (audioDevice.getType() == AudioDevice.Type.Speaker) { - call.setOutputAudioDevice(audioDevice); + try { + for (AudioDevice audioDevice : HDLLinphoneService.getCore().getAudioDevices()) { + if (audioDevice.getType() == AudioDevice.Type.Speaker) { + call.setOutputAudioDevice(audioDevice); + } } + }catch (Exception exception){ + Log.e("LinphoneError",exception.getMessage()); } } } -- Gitblit v1.8.0