微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试在 android 11 上获取网络功能时出现安全异常

如何解决尝试在 android 11 上获取网络功能时出现安全异常

我在尝试访问以下代码时收到 SecurityException 和 remoteexception。接口

val networkCapabilities = connectionManager.getNetworkCapabilities(connectivityManager.activeNetwork)

异常获取

Fatal Exception: java.lang.SecurityException: Package android does not belong to 10319
           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)

Caused by android.os.remoteexception: Remote stack trace:
        at android.app.AppOpsManager.checkPackage(AppOpsManager.java:7783)
        at com.android.server.ConnectivityService.getNetworkCapabilities(ConnectivityService.java:2297)
        at android.net.IConnectivityManager$Stub.onTransact(IConnectivityManager.java:1357)
        at android.os.Binder.execTransactInternal(Binder.java:1195)
        at android.os.Binder.execTransact(Binder.java:1159)

我已经对其进行了分析,当我深入研究 aosp 代码时,我发现流程将转到 AppOpsManager 类的 checkPackage 方法,如附加屏幕截图所示,以及我们在检查包条件时所知道的代码不等于 MODE_ALLOWED 那么只有我们会得到安全例外。但我没有。想法何时该条件会失败。

如果有人对此有任何想法,请帮助我,谢谢?

enter image description here

enter image description here

解决方法

看起来这是一个已知问题,但谷歌仍然没有回应 https://issuetracker.google.com/issues/175055271

reflog

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。