我已将第三方的一些库集成到我的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);
答案 0 :(得分:1)
我可以以编程方式删除或删除库吗?
没有
我可以...以编程方式停止主活动中的服务吗?
可能。询问图书馆的开发者。
我尝试添加以下行以避免错误,但它失败了
没有人知道“失败”意味着什么。联系图书馆的开发人员,并询问他们如何在Android 8.0+设备上使用它。
答案 1 :(得分:0)
我发现了解决此问题的可能解决方案,我们可以使用PackageManager从第三方库启用/禁用服务/接收器/活动。
ComponentName component = new ComponentName(context, MyReceiver.class);
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);