在 Android 11 上调用 getNetworkCapabilities 时出现安全异常

问题描述

即使我获得了 ACCESS_NETWORK_STATE 权限,我也会收到此异常。

 Caused by: java.lang.SecurityException:
at android.os.Parcel.createExceptionorNull (Parcel.java:2385)
at android.os.Parcel.createException (Parcel.java:2369)
at android.os.Parcel.readException (Parcel.java:2352)
at android.os.Parcel.readException (Parcel.java:2294)
at android.net.IConnectivityManager$Stub$Proxy.getNetworkCapabilities (IConnectivityManager.java:3347)
at android.net.ConnectivityManager.getNetworkCapabilities (ConnectivityManager.java:1549)

如何避免?

解决方法

这是一个已知问题:https://issuetracker.google.com/issues/175055271?pli=1

您可以将调用包装在 try/catch 中以处理异常,并至少避免崩溃。