代码之家  ›  专栏  ›  技术社区  ›  Bart Burg

运行时(Android)是否需要互联网访问请求?

  •  8
  • Bart Burg  · 技术社区  · 8 年前

    对于Android,我们需要在运行时询问权限,以确保用户更好地理解为什么需要权限。我知道这样的权限是正确的 WRITE_CALENDAR ACCESS_FINE_LOCATION 但它似乎不是INTERNET所必需的。这并不奇怪,因为几乎所有的应用程序都使用互联网。

    可以说我只需要在舱单上申报就可以了吗?

    <uses-permission android:name="android.permission.INTERNET" />
    

    或者我应该总是在运行时检查它?

    4 回复  |  直到 8 年前
        1
  •  21
  •   Egor    8 年前

    不,你不应该要求 INTERNET 运行时的权限。

    互联网 属于 Normal permissions 组,如果它们在清单中声明,则系统会自动授予,如中所述 this document :

    正常权限不会直接危及用户的隐私。如果您的应用程序在其清单中列出了正常权限,系统将自动授予该权限。

        2
  •  2
  •   Ayush    8 年前
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission  android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
    Your permission is right but you have to check internet connectivity before using any internet related function . You can check internet connected or not by following function 
    
    
    public static boolean isNetworkOnline(Context con)
        {
            boolean status = false;
            try 
            {
                ConnectivityManager cm = (ConnectivityManager) con
                        .getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo netInfo = cm.getNetworkInfo(0);
    
                if (netInfo != null && netInfo.getState() == State.CONNECTED) {
                    status = true;
                } else {
                    netInfo = cm.getNetworkInfo(1);
    
                    if (netInfo != null && netInfo.getState() == State.CONNECTED) {
                        status = true;
                    } else {
                        status = false;
                    }
                }
    
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
    
            return status;
        }
    
        3
  •  1
  •   Graham francescalus    7 年前

    Internet权限与sdk 23之前的权限相同。在安装应用程序时给予许可。

    INTERNET权限被视为 PROTECTION_NORMAL .

    如果应用程序在其清单中声明它需要正常权限,系统会在安装时自动授予该应用程序该权限。系统不会提示用户授予正常权限,用户无法撤销这些权限。

    危险权限需要运行时权限管理。它们也在“权限组”中,因此一旦为该组中的一个权限授予了运行时权限,就不需要为同一组中的其他权限授予运行时权限。

    此外,可以在运行时授予许可,并将其设置为默认接受,用户也可以随时撤销该许可。

        4
  •  0
  •   Kyle Emmanuel    8 年前

    默认情况下,它不是必需的。只有在应用程序中需要互联网连接时才使用它。