如何在打盹模式Marshmallow和Nougat上持续活跃互联网

Muk*_*mar 8 android android-service

我正在研究实时位置跟踪应用程序,并通过使用前台服务将当前位置更新到服务器.

现在,我可以让设备在深度睡眠时保持活动状态.但由于网络访问在Doze模式下暂停,我无法在服务器上更新它.
根据Google开发人员指南建议,我们可以使用高优先级FCM消息来解决此问题.但在我的情况下,如何在网络访问被暂停时通知服务器推送通知(需要通过操作系统或手动识别互联网访问禁用).

nAk*_*dov 0

尝试检查 NetworkInfo 状态

public static boolean isNetBlocked(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();

    return networkInfo != null && networkInfo.getDetailedState().name().equals(NetworkInfo.DetailedState.BLOCKED.name());
}
Run Code Online (Sandbox Code Playgroud)