From 848cbfebefab08cc49b0285155edb84463aed862 Mon Sep 17 00:00:00 2001 From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com> Date: 星期三, 13 十一月 2024 17:19:53 +0800 Subject: [PATCH] 提交home项目所用可视对讲sdk --- HDLLinphoneSDKDemoNew/HDLLinphoneSDK/src/main/java/com/hdl/hdllinphonesdk/core/service/HDLLinphoneService.java | 62 ++++++++++++++++++++---------- 1 files changed, 41 insertions(+), 21 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..ada707d 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 @@ -1,25 +1,22 @@ package com.hdl.hdllinphonesdk.core.service; +import static com.hdl.hdllinphonesdk.HDLLinphoneKit.HDLLinphoneKitNAME; + import android.app.AlarmManager; -import android.app.Notification; -import android.app.NotificationChannel; -import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; 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 com.google.gson.Gson; import com.hdl.hdllinphonesdk.R; -import com.hdl.hdllinphonesdk.activity.HDLLinphoneIntercomActivity; -import com.hdl.hdllinphonesdk.activity.HDLLinphoneReverseCallActivity; import com.hdl.hdllinphonesdk.core.callback.PhoneCallback; import com.hdl.hdllinphonesdk.core.callback.RegistrationCallback; import com.hdl.hdllinphonesdk.core.linphone.KeepAliveHandler; @@ -33,7 +30,6 @@ import org.linphone.core.PayloadType; import org.linphone.core.ProxyConfig; import org.linphone.core.RegistrationState; -import org.linphone.core.ToneID; import org.linphone.core.VideoActivationPolicy; import org.linphone.core.VideoDefinition; import org.linphone.core.tools.Log; @@ -46,12 +42,10 @@ import java.util.Timer; import java.util.TimerTask; -import static com.hdl.hdllinphonesdk.HDLLinphoneKit.HDLLinphoneKitNAME; - 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 +78,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; } /** @@ -133,7 +136,14 @@ hdlStartForeground(); initLinphone(); Intent intent = new Intent(this, KeepAliveHandler.class); - mKeepAlivePendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); +// mKeepAlivePendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); + + if (android.os.Build.VERSION.SDK_INT >= 31) { + mKeepAlivePendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_IMMUTABLE); + } else { + mKeepAlivePendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); + } + ((AlarmManager) this.getSystemService(Context.ALARM_SERVICE)).setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 60000, 60000, mKeepAlivePendingIntent); } @@ -141,11 +151,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 +185,6 @@ mTimer = new Timer("Linphone scheduler"); mTimer.schedule(lTask, 0, 20); - return START_STICKY; } @Override @@ -213,7 +228,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 +275,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(); @@ -379,8 +395,12 @@ //2.璁剧疆VP8銆丠264銆丠265 绛夊惎鐢� PayloadType[] ptVideoList = mCore.getVideoPayloadTypes(); for (PayloadType pt : ptVideoList) { -// HDLLog.i("VideoPayload", pt.getMimeType()); - pt.enable(true); + HDLLog.i("VideoPayload", pt.getMimeType()); + if ("VP8".equals(pt.getMimeType())){ + pt.enable(false); + }else { + pt.enable(true); + } } mCore.setVideoPayloadTypes(ptVideoList); } -- Gitblit v1.8.0