From 83d5ada866a598ee868d3e23624d104d1027db29 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 27 八月 2024 15:28:42 +0800 Subject: [PATCH] 增加挂断功能 --- HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java | 53 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 40 insertions(+), 13 deletions(-) diff --git a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java index 6462798..5d9ba9a 100644 --- a/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java +++ b/HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java @@ -6,17 +6,22 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.ServiceConnection; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.SystemClock; import android.support.v4.app.NotificationCompat; +import android.telecom.ConnectionService; +import com.google.gson.Gson; import com.hdl.hdllinphonesdk.R; import com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity; import com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity; @@ -51,7 +56,7 @@ public class HDLLinphoneService extends Service { private static final String START_LINPHONE_LOGS = " ==== HDLLinphoneService ===="; // Keep a static reference to the Service so we can access it from anywhere in the app - private static HDLLinphoneService sInstance; + private volatile static HDLLinphoneService sInstance; private PendingIntent mKeepAlivePendingIntent; private static PhoneCallback sPhoneCallback;//閫氳瘽鐘舵�佸洖璋� @@ -84,9 +89,18 @@ return sInstance.mCore; } + public class LinphoneBinder extends Binder { + + public HDLLinphoneService getService() { + return HDLLinphoneService.this; + } + } + + private final IBinder binder = new LinphoneBinder(); + @Override public IBinder onBind(Intent intent) { - return null; + return binder; } /** @@ -141,11 +155,17 @@ @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); + /* if (sInstance != null) { + return START_STICKY; + }*/ + return START_STICKY; + } + + + public void initCore() { // If our Service is already running, no need to continue - if (sInstance != null) { - return START_STICKY; - } + // Our Service has been started, we can keep our reference on it // From now one the Launcher will be able to call onServiceReady() @@ -169,7 +189,6 @@ mTimer = new Timer("Linphone scheduler"); mTimer.schedule(lTask, 0, 20); - return START_STICKY; } @Override @@ -213,7 +232,7 @@ String basePath = getFilesDir().getAbsolutePath(); Factory.instance().setLogCollectionPath(basePath); Factory.instance().enableLogCollection(LogCollectionState.Enabled); - Factory.instance().setDebugMode(false, getString(R.string.app_name)); + Factory.instance().setDebugMode(true, "HDLLinphone"); // Dump some useful information about the device we're running on // HDLLog.I(START_LINPHONE_LOGS); // dumpDeviceInformation(); @@ -260,8 +279,9 @@ @Override public void onRegistrationStateChanged(Core core, ProxyConfig proxyConfig, RegistrationState registrationState, String message) { String state = registrationState.toString(); - HDLLog.i(START_LINPHONE_LOGS, "registrationState: " + state); + HDLLog.i(START_LINPHONE_LOGS, "registrationState: " + state + ",message:" + message); + HDLLog.i(START_LINPHONE_LOGS, "Registration info=" + new Gson().toJson(proxyConfig)); if (state.equals(RegistrationState.None.toString())) { if (sRegistrationCallback != null) { sRegistrationCallback.registrationNone(); @@ -326,11 +346,11 @@ //2.璁剧疆UserAgent setUserAgent(); //3.璁剧疆鎾斁閾冨0 -// mCore.setNativeRingingEnabled(true); -// mCore.setRemoteRingbackTone(mRingSoundFile); -// mCore.setTone(ToneID.CallWaiting, mRingSoundFile); -// mCore.setRing(mRingSoundFile); -// mCore.setPlayFile(mPauseSoundFile); + mCore.setNativeRingingEnabled(true); + mCore.setRemoteRingbackTone(mRingSoundFile); + mCore.setTone(ToneID.CallWaiting, mRingSoundFile); + mCore.setRing(mRingSoundFile); + mCore.setPlayFile(mPauseSoundFile); //4.绂佺敤鎵嬫満鎽勫儚澶磋棰戦噰闆� // mCore.enableVideoCapture(false);//绂佺敤鎵嬫満鎽勫儚澶磋棰戦噰闆� // mCore.setNetworkReachable(true); @@ -356,6 +376,9 @@ mCore.setVideoActivationPolicy(vap); //11.璁剧疆缂栫爜鏍煎紡 setCodecMime(); + +// mCore.setRing(mRingSoundFile); + // 鍏ㄨ閫歴ip璁剧疆ca璇佷功 //mCore.setRootCa(basePath + "/rootca.pem"); @@ -479,6 +502,10 @@ } + public void pddd (){ +// RingtoneManager.GetDefaultUri + } + /** * copyIfNotExist * -- Gitblit v1.8.0