我应该使用ConnectivityManager和WifiManager而不是Read_Phone_State吗?

时间:2011-11-29 19:10:53

标签: android permissions connectivity

好的,所以Stackoverflow上的每个人都说,要检查网络连接是否可用,我会在清单中添加Permision READ_PHONE_STATE - 这对我来说非常难看(尽管市场上很多应用程序都有许可,我认为这是一个矫枉过正;你得到了IMEI,用户的电话号码等。)

所以我偶然发现了权限ACCESS_NETWORK_STATEACCESS_WIFI_STATE,这应该会给出相同的结果。有没有人使用它们的原因?

因为如果没有,我不需要READ_PHONE_STATE权限,这有点不那么可怕(或者用户实际上并不关心?)

谢谢!

1 个答案:

答案 0 :(得分:0)

我在许多应用程序中都使用过这些权限。 BroadcastReceiver可以检查网络何时更改状态,或者您可以使用以下内容检查连接状态(source):

public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        return true;
    }
    return false;
}