Commit e28f6171 authored by Noah Passalacqua's avatar Noah Passalacqua

Add Android support for Serial Number, IP Address, and MAC Address.

parent 71796205
...@@ -7,10 +7,13 @@ import android.content.Context; ...@@ -7,10 +7,13 @@ import android.content.Context;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiInfo;
import android.os.Build; import android.os.Build;
import android.provider.Settings.Secure; import android.provider.Settings.Secure;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.text.format.Formatter;
import com.google.android.gms.iid.InstanceID; import com.google.android.gms.iid.InstanceID;
...@@ -18,6 +21,7 @@ import com.facebook.react.bridge.ReactApplicationContext; ...@@ -18,6 +21,7 @@ import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.Promise;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
...@@ -30,9 +34,16 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { ...@@ -30,9 +34,16 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
ReactApplicationContext reactContext; ReactApplicationContext reactContext;
WifiInfo wifiInfo;
public RNDeviceModule(ReactApplicationContext reactContext) { public RNDeviceModule(ReactApplicationContext reactContext) {
super(reactContext); super(reactContext);
this.reactContext = reactContext; this.reactContext = reactContext;
WifiManager manager = (WifiManager) reactContext.getSystemService(Context.WIFI_SERVICE);
this.wifiInfo = manager.getConnectionInfo();
} }
@Override @Override
...@@ -82,6 +93,18 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { ...@@ -82,6 +93,18 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
callback.invoke(keyguardManager.isKeyguardSecure()); callback.invoke(keyguardManager.isKeyguardSecure());
} }
@ReactMethod
public void getIpAddress(Promise p) {
String ipAddress = Formatter.formatIpAddress(wifiInfo.getIpAddress());
p.resolve(ipAddress);
}
@ReactMethod
public void getMacAddress(Promise p) {
String macAddress = wifiInfo.getMacAddress();
p.resolve(macAddress);
}
@Override @Override
public @Nullable Map<String, Object> getConstants() { public @Nullable Map<String, Object> getConstants() {
HashMap<String, Object> constants = new HashMap<String, Object>(); HashMap<String, Object> constants = new HashMap<String, Object>();
...@@ -115,6 +138,7 @@ public class RNDeviceModule extends ReactContextBaseJavaModule { ...@@ -115,6 +138,7 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
} }
constants.put("instanceId", InstanceID.getInstance(this.reactContext).getId()); constants.put("instanceId", InstanceID.getInstance(this.reactContext).getId());
constants.put("serialNumber", Build.SERIAL);
constants.put("deviceName", deviceName); constants.put("deviceName", deviceName);
constants.put("systemName", "Android"); constants.put("systemName", "Android");
constants.put("systemVersion", Build.VERSION.RELEASE); constants.put("systemVersion", Build.VERSION.RELEASE);
......
...@@ -11,6 +11,15 @@ module.exports = { ...@@ -11,6 +11,15 @@ module.exports = {
getInstanceID: function() { getInstanceID: function() {
return RNDeviceInfo.instanceId; return RNDeviceInfo.instanceId;
}, },
getSerialNumber: function () {
return RNDeviceInfo.serialNumber;
},
getIPAddress: function () {
return RNDeviceInfo.getIpAddress();
},
getMACAddress: function () {
return RNDeviceInfo.getMacAddress();
},
getDeviceId: function () { getDeviceId: function () {
return RNDeviceInfo.deviceId; return RNDeviceInfo.deviceId;
}, },
...@@ -74,5 +83,7 @@ module.exports = { ...@@ -74,5 +83,7 @@ module.exports = {
getLastUpdateTime: function () { getLastUpdateTime: function () {
return RNDeviceInfo.lastUpdateTime; return RNDeviceInfo.lastUpdateTime;
}, },
getPhoneNumber: _ => RNDeviceInfo.phoneNumber getPhoneNumber: function () {
return RNDeviceInfo.phoneNumber;
}
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment