Можно ли получить тип сети (wifi / мобильный), не требуя разрешений?

#android #android-networking #android-connectivitymanager #networkinfo

#Android #android-сеть #android-connectivitymanager #networkinfo

Вопрос:

Мне нужно знать тип сети, но для этого требуются разрешения.

Я пытаюсь так:

 public String getConnectionTypeNew(Context context){
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    if (activeNetwork != null) { // connected to the internet
        if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
            return "WiFi Network";
        } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
            return "Mobile Network";
        }
    }
    return "No Network";
}
  

Есть ли способ получить тип сети, не требуя разрешений?

Комментарии:

1. ACCESS_NETWORK_STATE не является опасным разрешением. Почему вы пытаетесь обойти это?

Ответ №1:

Вы устанавливаете разрешения в манифесте?

Если нет, поместите их в свой манифест.

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