22

尝试获取最新的粘性意图时,我收到java.lang.IllegalArgumentException以下消息regist too many Broadcast Receivers(是的,消息说regist而不是)。我使用以下代码:registerACTION_BATTERY_CHANGED

Intent latestStickyIntent = getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

如您所见,由于我null用作广播接收器,因此没有新接收器的实际注册。

据我所知,这只发生在华为 RIO L01 设备上的单个用户身上,但我不能说这是否是原因。

有人对这个错误有类似的经历吗?

更新(03/2016):

开始在其他华为设备(ALE L04、G7 L03)上看到同样的问题,但仍然没有其他制造商的设备。

在此处输入图像描述

4

1 回答 1

4

这是华为手机系统的局限。华为手机有白名单机制。只有白名单中的APP才能避免这个bug。我使用反射来尝试解决这个错误。可能对你有帮助

https://github.com/llew2011/HuaWeiVerifier

如何使用

dependencies {
    // add dependencies
    implementation 'com.llew.huawei:verifier:1.0.2'
}


public class SimpleApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        LoadedApkHuaWei.hookHuaWeiVerifier(getBaseContext());
    }
}

这一切

于 2018-01-15T02:30:00.153 回答