This repository was archived by the owner on Sep 3, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathRNSimDataModule.java
More file actions
116 lines (97 loc) · 4.56 KB
/
RNSimDataModule.java
File metadata and controls
116 lines (97 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package eu.sigrlami.rnsimdata;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.LinkedList;
import java.util.ArrayList;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.WritableNativeArray;
import com.facebook.react.bridge.WritableNativeMap;
public class RNSimDataModule extends ReactContextBaseJavaModule {
ReactApplicationContext reactContext;
public RNSimDataModule(ReactApplicationContext reactContext) {
super(reactContext);
this.reactContext = reactContext;
}
@Override
public String getName() {
return "RNSimDataModule";
}
@ReactMethod
public void getRealtimeInfo(Callback callback) {
try {
TelephonyManager telManager = (TelephonyManager) this.reactContext.getSystemService(Context.TELEPHONY_SERVICE);
WritableNativeArray result = new WritableNativeArray();
SubscriptionManager manager = (SubscriptionManager) this.reactContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> subscriptionInfos = manager.getActiveSubscriptionInfoList();
for (SubscriptionInfo subInfo : subscriptionInfos) {
String iccId = subInfo.getIccId();
int mcc = subInfo.getMcc();
int mnc = subInfo.getMnc();
int simSlotIndex = subInfo.getSimSlotIndex();
CharSequence carrierName = subInfo.getCarrierName();
String networkCountry = telManager.getNetworkCountryIso();
WritableNativeMap map = new WritableNativeMap();
map.putString("iccid", iccId);
map.putString("mcc", Integer.toString(mcc));
map.putString("mnc", Integer.toString(mnc));
map.putString("carrierName", carrierName.toString());
map.putString("simSlotIndex", Integer.toString(simSlotIndex));
map.putString("networkCountry", networkCountry);
result.pushMap(map);
}
callback.invoke(result);
} catch (Exception e) {
e.printStackTrace();
callback.invoke(new String(""));
}
}
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
try {
TelephonyManager telManager = (TelephonyManager) this.reactContext.getSystemService(Context.TELEPHONY_SERVICE);
SubscriptionManager manager = (SubscriptionManager) this.reactContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> subscriptionInfos = manager.getActiveSubscriptionInfoList();
int sub = 0;
for (SubscriptionInfo subInfo : subscriptionInfos) {
CharSequence carrierName = subInfo.getCarrierName();
String countryIso = subInfo.getCountryIso();
int dataRoaming = subInfo.getDataRoaming(); // 1 is enabled ; 0 is disabled
CharSequence displayName = subInfo.getDisplayName();
String iccId = subInfo.getIccId();
int mcc = subInfo.getMcc();
int mnc = subInfo.getMnc();
String number = subInfo.getNumber();
int simSlotIndex = subInfo.getSimSlotIndex();
int subscriptionId = subInfo.getSubscriptionId();
boolean networkRoaming = telManager.isNetworkRoaming();
String deviceId = telManager.getDeviceId(simSlotIndex);
//String deviceId = telManager.getImei(simSlotIndex) || telManager.getMeid(simSlotIndex);
constants.put("carrierName" + sub, carrierName.toString());
constants.put("displayName" + sub, displayName.toString());
constants.put("countryCode" + sub, countryIso);
constants.put("mcc" + sub, mcc);
constants.put("mnc" + sub, mnc);
constants.put("isNetworkRoaming" + sub, networkRoaming);
constants.put("isDataRoaming" + sub, (dataRoaming == 1));
constants.put("simSlotIndex" + sub, simSlotIndex);
constants.put("phoneNumber" + sub, number);
constants.put("deviceId" + sub, deviceId);
constants.put("simSerialNumber" + sub, iccId);
constants.put("subscriptionId" + sub, subscriptionId);
sub++;
}
} catch (Exception e) {
e.printStackTrace();
}
return constants;
}
}