我已将第三方的一些库集成到我的 android 应用程序中。
他们使用带有位置的后台服务,但由于 Android 8 更新了后台位置限制 ,因此导致java.lang.IllegalStateException错误。
我试图添加以下几行以避免错误,但它失败了:
if(Build.VERSION.SDK_INT <= 25) { // below Android 8.0
PushAd.startPush(activity);
}else{
PushAd.disablePush(activity);
}
dependencies {
implementation 'com.adlocus:library:3.5.7@aar'
}
我可以删除或删除库,或以编程方式停止主要活动中的服务吗?
[解决了]
我发现了一个可能的解决方案来解决这个问题,我们可以使用 PackageManager 从第三方库启用/禁用服务/接收器/活动。
ComponentName component = new ComponentName(context, MyReceiver.class);
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);
感谢Varun 的回答。