-2

我已将第三方的一些库集成到我的 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 的回答

4

2 回答 2

1

我可以以编程方式删除或删除库吗?

不。

我可以...以编程方式停止主要活动中的服务吗?

可能。询问图书馆的开发人员。

我试图添加以下几行以避免错误,但它失败了

没有人知道“失败”是什么意思。联系库的开发人员,询问他们如何在 Android 8.0+ 设备上使用它。

于 2018-02-05T13:53:24.967 回答
0

我发现了一个可能的解决方案来解决这个问题,我们可以使用 PackageManager 从第三方库启用/禁用服务/接收器/活动。

ComponentName component = new ComponentName(context, MyReceiver.class);
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);

感谢Varun 的回答

于 2018-02-05T17:51:25.623 回答