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

时间:2016-02-05 09:24:31

标签: 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));

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

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

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

更新(03/2016):

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

enter image description here

1 个答案:

答案 0 :(得分:1)

这是华为移动电话系统的局限。华为的手机有白名单机制。只有白名单中的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());
    }
}

全部