我在尝试访问下面的代码时收到 SecurityException,然后是 RemoteException。API
val networkCapabilities = connectivityManager.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 那么只有我们会得到安全例外。但我没有。想法什么时候该条件会失败。
如果有人对此有任何想法,请帮助我,谢谢