【问题标题】:Error required permissions android.permission.CONNECTIVITY_INTERNAL android.permission.MAINLINE_NETWORK_STACK错误需要权限 android.permission.CONNECTIVITY_INTERNAL android.permission.MAINLINE_NETWORK_STACK
【发布时间】:2020-11-22 11:04:58
【问题描述】:

我正在编写一个简单的应用程序,它想在 Android 10 上连接到特定的 WiFi 网络。 我在 manifest.xml 中提供了我认为可能需要的所有权限。

<uses-permission-sdk-23 android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission-sdk-23 android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission-sdk-23 android:name="android.permission.INTERNET"/>
<uses-permission-sdk-23 android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission-sdk-23 android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission-sdk-23 android:name="android.permission.CONNECTIVITY_INTERNAL" />
<uses-permission-sdk-23 android:name="android.permission.MAINLINE_NETWORK_STACK" />

但是当我使用“connectivitymanager.requestNetwork”功能时,我得到了错误:

java.lang.SecurityException:需要以下权限之一:android.permission.CONNECTIVITY_INTERNAL、android.permission.MAINLINE_NETWORK_STACK。

在我要请求权限的代码中,这两个权限未定义且不可用于请求。

有人知道这个权限或错误原因吗?

于尔根

【问题讨论】:

    标签: java android android-wifi android-developer-api


    【解决方案1】:

    我在调用NetworkRequest.Builder#addCapability() 并传入NetworkCapabilities.TRANSPORT_X 值时遇到了这个问题。我需要打电话给addTransportType()

    【讨论】:

      【解决方案2】:

      根据 android 文档:
      "android.permission.CONNECTIVITY_INTERNAL" : deprecated 此权限用于允许对敏感方法的访问过于广泛,其所有用途已被更合适的权限所取代。大多数用途已被 NETWORK_STACK 或 NETWORK_SETTINGS 检查所取代。请查看各个功能的文档,以确定现在哪些权限可以保护各个功能。 @SystemApi 允许内部用户使用特权 ConnectivityManager API。

      【讨论】:

        猜你喜欢
        • 2022-12-04
        • 1970-01-01
        • 2021-06-16
        • 2011-11-12
        • 2011-12-10
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2023-03-22
        相关资源
        最近更新 更多