服务启动与关闭模块部署基本完成,待调试。。。
This commit is contained in:
@@ -21,13 +21,11 @@ import android.widget.CheckBox;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentPagerAdapter;
|
import androidx.fragment.app.FragmentPagerAdapter;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import cc.winboll.studio.contacts.activities.SettingsActivity;
|
import cc.winboll.studio.contacts.activities.SettingsActivity;
|
||||||
import cc.winboll.studio.contacts.activities.WinBollActivity;
|
import cc.winboll.studio.contacts.activities.WinBollActivity;
|
||||||
import cc.winboll.studio.contacts.dun.Rules;
|
import cc.winboll.studio.contacts.dun.Rules;
|
||||||
@@ -43,7 +41,6 @@ import cc.winboll.studio.libaes.views.ADsBannerView;
|
|||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.LogView;
|
import cc.winboll.studio.libappbase.LogView;
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import java.util.TimerTask;
|
|||||||
* @Date 2025/02/13 06:56:41
|
* @Date 2025/02/13 06:56:41
|
||||||
* @Describe 拨号主服务,负责核心业务逻辑、守护进程绑定、铃声音量监控及通话监听启动
|
* @Describe 拨号主服务,负责核心业务逻辑、守护进程绑定、铃声音量监控及通话监听启动
|
||||||
* 严格适配 Android API 30 + Java 7 语法规范 | 解决前台服务启动超时崩溃
|
* 严格适配 Android API 30 + Java 7 语法规范 | 解决前台服务启动超时崩溃
|
||||||
|
* 新增:统一在 mainService() 中启动电话监听服务 + 通话筛选服务
|
||||||
*/
|
*/
|
||||||
public class MainService extends Service {
|
public class MainService extends Service {
|
||||||
// ====================== 常量定义区(全硬编码,杜绝高版本 API 依赖) ======================
|
// ====================== 常量定义区(全硬编码,杜绝高版本 API 依赖) ======================
|
||||||
@@ -299,12 +300,24 @@ public class MainService extends Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动通话监听服务
|
* 启动电话监听服务(原有:CallListenerService)
|
||||||
*/
|
*/
|
||||||
private void startPhoneCallListener() {
|
private void startPhoneCallListener() {
|
||||||
delayStartNonCoreService(CallListenerService.class);
|
delayStartNonCoreService(CallListenerService.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增:启动通话筛选服务(MyCallScreeningService,API 10+ 生效)
|
||||||
|
*/
|
||||||
|
private void startCallScreeningService() {
|
||||||
|
// 通话筛选服务仅 Android 10+(API 29+)支持,低版本跳过
|
||||||
|
if (Build.VERSION.SDK_INT >= ANDROID_10_API) {
|
||||||
|
delayStartNonCoreService(MyCallScreeningService.class);
|
||||||
|
} else {
|
||||||
|
LogUtils.d(TAG, "startCallScreeningService: 系统版本低于 Android 10,不支持通话筛选服务,跳过启动");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查服务是否正在运行
|
* 检查服务是否正在运行
|
||||||
*/
|
*/
|
||||||
@@ -404,9 +417,10 @@ public class MainService extends Service {
|
|||||||
mMainServiceThread = null;
|
mMainServiceThread = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 7. 强制停止所有子服务
|
// 7. 强制停止所有子服务(新增:停止通话筛选服务 MyCallScreeningService)
|
||||||
stopService(new Intent(this, AssistantService.class));
|
stopService(new Intent(this, AssistantService.class));
|
||||||
stopService(new Intent(this, CallListenerService.class));
|
stopService(new Intent(this, CallListenerService.class));
|
||||||
|
stopService(new Intent(this, MyCallScreeningService.class));
|
||||||
LogUtils.d(TAG, "onDestroy: 所有子服务已强制停止");
|
LogUtils.d(TAG, "onDestroy: 所有子服务已强制停止");
|
||||||
|
|
||||||
// 8. 清空静态实例,避免内存泄漏(不改动 Bean 配置)
|
// 8. 清空静态实例,避免内存泄漏(不改动 Bean 配置)
|
||||||
@@ -471,10 +485,13 @@ public class MainService extends Service {
|
|||||||
Rules.getInstance(this).loadRules();
|
Rules.getInstance(this).loadRules();
|
||||||
LogUtils.d(TAG, "mainService: 黑白名单规则已加载");
|
LogUtils.d(TAG, "mainService: 黑白名单规则已加载");
|
||||||
|
|
||||||
// 4. 启动电话监听服务
|
// 4. 启动电话监听服务(原有:CallListenerService)
|
||||||
startPhoneCallListener();
|
startPhoneCallListener();
|
||||||
|
|
||||||
// 5. 启动主业务线程
|
// 5. 新增:启动通话筛选服务(MyCallScreeningService,API 10+ 生效)
|
||||||
|
startCallScreeningService();
|
||||||
|
|
||||||
|
// 6. 启动主业务线程
|
||||||
mMainServiceThread = MainServiceThread.getInstance(this, mMainServiceHandler);
|
mMainServiceThread = MainServiceThread.getInstance(this, mMainServiceHandler);
|
||||||
mMainServiceThread.start();
|
mMainServiceThread.start();
|
||||||
LogUtils.i(TAG, "mainService: 核心流程启动完成,主服务正常运行");
|
LogUtils.i(TAG, "mainService: 核心流程启动完成,主服务正常运行");
|
||||||
|
|||||||
Reference in New Issue
Block a user