java.lang.IllegalArgumentException:注册太多广播接收器

Muz*_*ant 19 android broadcastreceiver illegalargumentexception huawei

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

Intent latestStickyIntent = getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
Run Code Online (Sandbox Code Playgroud)

如您所见,由于我使用的null是BroadcastReceiver ,因此没有新接收器的实际寄存器.

据我所知,这只发生在HUAWEI RIO L01设备上的单个用户,但我不知道是否是原因.

任何人都有与此错误相似的经历?

更新(03/2016):

开始在其他华为设备(ALE L04,G7 L03)上看到相同的问题,但仍然没有其他厂商的设备.

在此输入图像描述

lle*_*lew 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

这一切