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