当应用程序处于后台时,Mi Devices阻止Internet访问

时间:2017-06-05 07:36:55

标签: android

我想检查设备是否已连接到互联网。下面是我的代码片段:

public boolean isConnectedToInterNet() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}

以上函数在后台服务中返回false(即使连接到wifi / 4g数据),当app在前台时返回true。

activeNetworkInfo对象返回以下信息:

  

NetworkInfo:type:WIFI [],state:DISCONNECTED / BLOCKED,reason :( unspecified),extra:(none),漫游:false,failover:false,isAvailable:true,isConnectedToProvisioningNetwork:false,simId:0

问题特定于Redmi设备。

我也启用了aouto-start,isConnectedToInterNet()方法为所有其他设备返回true。

我已经看到下面的所有其他评论,但问题没有解决

1 个答案:

答案 0 :(得分:0)

它的miui限制,您不能对其抛出代码产生影响,但是您可以重定向用户以更改应用程序的设置。 (我在c#上发布了您的答案,我认为您可以将其翻译为java)

public void CheckBackgroundRestriction()
    {
        Intent battSaverIntent = new Intent();
        battSaverIntent.SetComponent(new ComponentName("com.miui.powerkeeper", "com.miui.powerkeeper.ui.HiddenAppsContainerManagementActivity"));
        ((AppCompatActivity)_context).StartActivityForResult(battSaverIntent, 4321);
    }