簡體   English   中英

如果我有INTERNET,我是否需要ACCESS_NETWORK_STATE權限?

[英]Do I need ACCESS_NETWORK_STATE permission if I have INTERNET one

我的應用程序中有一個INTERNET權限。 但現在我想在我的應用中添加谷歌分析。 它說它需要一個CHECK_INTERNET_SATE。 我必須添加它嗎? 如果是這樣,它看起來很奇怪 - 可以訪問互聯網的應用程序無法讀取它的狀態。 我不認為這是正常的

這兩個權限之間存在基本差異,

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

上述權限允許應用程序打開網絡套接字

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

如上所述ACCESS_NETWORK_STATE權限允許應用程序訪問有關網絡的信息。

例:

如果要在WebView加載URL,則只需要android.permission.INTERNET權限。

如果您必須從服務器下載某些數據,則需要在下載之前檢查互聯網連接可用性。 否則,如果沒有連接,應用程序可能會崩潰。如下所示,您可以檢查互聯網連接,

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}

在上面的代碼片段中,您將獲取有關網絡的信息,因此您必須獲取android.permission.ACCESS_NETWORK_STATE權限。

And it says it need a CHECK_INTERNET_SATE. Do I have to add it?

Google Analytics SDK會在向服務器發送信息之前檢查網絡可用性,因此您也需要該權限。

希望它能清除你的懷疑。

參考

http://developer.android.com/reference/android/Manifest.permission.html

https://stackoverflow.com/a/19642087/1665507

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM