Skip to content

Commit b0ff1ff

Browse files
authored
fix(android): Add another check in ConnectivityReciever to make sure we have ACCESS_WIFI_STATE permission (#379 by @sweggersen)
1 parent 1f83d63 commit b0ff1ff

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

android/src/main/java/com/reactnativecommunity/netinfo/ConnectivityReceiver.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@
66
*/
77
package com.reactnativecommunity.netinfo;
88

9-
import android.Manifest;
109
import android.content.Context;
11-
import android.content.pm.PackageManager;
1210
import android.net.ConnectivityManager;
1311
import android.net.wifi.WifiInfo;
1412
import android.net.wifi.WifiManager;
1513
import android.telephony.TelephonyManager;
1614

17-
import androidx.core.content.ContextCompat;
1815
import androidx.core.net.ConnectivityManagerCompat;
1916

2017
import com.facebook.react.bridge.Arguments;
@@ -115,8 +112,10 @@ private WritableMap createConnectivityEventMap(@Nullable final String requestedI
115112
WritableMap event = Arguments.createMap();
116113

117114
// Add if WiFi is ON or OFF
118-
boolean isEnabled = mWifiManager.isWifiEnabled();
119-
event.putBoolean("isWifiEnabled", isEnabled);
115+
if (NetInfoUtils.isAccessWifiStatePermissionGranted(getReactContext())) {
116+
boolean isEnabled = mWifiManager.isWifiEnabled();
117+
event.putBoolean("isWifiEnabled", isEnabled);
118+
}
120119

121120
// Add the connection type information
122121
event.putString("type", requestedInterface != null ? requestedInterface : mConnectionType.label);
@@ -161,8 +160,7 @@ private WritableMap createDetailsMap(@Nonnull String detailsInterface) {
161160
}
162161
break;
163162
case "wifi":
164-
if (ContextCompat.checkSelfPermission(getReactContext(),
165-
Manifest.permission.ACCESS_WIFI_STATE) == PackageManager.PERMISSION_GRANTED) {
163+
if (NetInfoUtils.isAccessWifiStatePermissionGranted(getReactContext())) {
166164
WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
167165
if (wifiInfo != null) {
168166
// Get the SSID

android/src/main/java/com/reactnativecommunity/netinfo/NetInfoUtils.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
*/
77
package com.reactnativecommunity.netinfo;
88

9+
import android.Manifest;
10+
import android.content.Context;
11+
import android.content.pm.PackageManager;
12+
13+
import androidx.core.content.ContextCompat;
14+
915
public class NetInfoUtils {
1016
public static void reverseByteArray(byte[] array) {
1117
for (int i = 0; i < array.length / 2; i++) {
@@ -14,4 +20,9 @@ public static void reverseByteArray(byte[] array) {
1420
array[array.length - i - 1] = temp;
1521
}
1622
}
23+
24+
public static boolean isAccessWifiStatePermissionGranted(Context context) {
25+
return ContextCompat.checkSelfPermission(context,
26+
Manifest.permission.ACCESS_WIFI_STATE) == PackageManager.PERMISSION_GRANTED;
27+
}
1728
}

0 commit comments

Comments
 (0)