expo-cellular 55.0.4 → 55.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/cellular/CellularModule.kt +0 -20
  4. package/build/Cellular.d.ts +17 -105
  5. package/build/Cellular.d.ts.map +1 -1
  6. package/build/Cellular.js +32 -114
  7. package/build/Cellular.js.map +1 -1
  8. package/expo-module.config.json +1 -1
  9. package/ios/CellularModule.swift +0 -56
  10. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6-sources.jar +0 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6-sources.jar.md5 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6-sources.jar.sha1 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6-sources.jar.sha256 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6-sources.jar.sha512 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.aar +0 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.aar.md5 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.aar.sha1 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.aar.sha256 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.aar.sha512 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.module +87 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.module.md5 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.module.sha1 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.module.sha256 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.module.sha512 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/{55.0.4/expo.modules.cellular-55.0.4.pom → 55.0.6/expo.modules.cellular-55.0.6.pom} +1 -1
  26. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.pom.md5 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.pom.sha1 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.pom.sha256 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.6/expo.modules.cellular-55.0.6.pom.sha512 +1 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/maven-metadata.xml +4 -4
  31. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/maven-metadata.xml.md5 +1 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/maven-metadata.xml.sha1 +1 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/maven-metadata.xml.sha256 +1 -1
  34. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/maven-metadata.xml.sha512 +1 -1
  35. package/package.json +2 -2
  36. package/src/Cellular.ts +32 -119
  37. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4-sources.jar +0 -0
  38. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4-sources.jar.md5 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4-sources.jar.sha1 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4-sources.jar.sha256 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4-sources.jar.sha512 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.aar +0 -0
  43. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.aar.md5 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.aar.sha1 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.aar.sha256 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.aar.sha512 +0 -1
  47. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.module +0 -87
  48. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.module.md5 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.module.sha1 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.module.sha256 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.module.sha512 +0 -1
  52. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.pom.md5 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.pom.sha1 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.pom.sha256 +0 -1
  55. package/local-maven-repo/host/exp/exponent/expo.modules.cellular/55.0.4/expo.modules.cellular-55.0.4.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,16 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 55.0.6 — 2026-02-16
14
+
15
+ ### 🛠 Breaking changes
16
+
17
+ - remove deprecated JS constants, return `null` as a replacement for deprecated native iOS methods ([#43035](https://github.com/expo/expo/pull/43035) by [@vonovak](https://github.com/vonovak))
18
+
19
+ ## 55.0.5 — 2026-02-08
20
+
21
+ _This version does not introduce any user-facing changes._
22
+
13
23
  ## 55.0.4 — 2026-02-03
14
24
 
15
25
  _This version does not introduce any user-facing changes._
@@ -4,12 +4,12 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '55.0.4'
7
+ version = '55.0.6'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.cellular"
11
11
  defaultConfig {
12
12
  versionCode 11
13
- versionName '55.0.4'
13
+ versionName '55.0.6'
14
14
  }
15
15
  }
@@ -19,26 +19,6 @@ class CellularModule : Module() {
19
19
  override fun definition() = ModuleDefinition {
20
20
  Name(moduleName)
21
21
 
22
- Constant("allowsVoip") {
23
- SipManager.isVoipSupported(context)
24
- }
25
-
26
- Constant("isoCountryCode") {
27
- telephonyManager()?.simCountryIso
28
- }
29
-
30
- Constant("carrier") {
31
- telephonyManager()?.simOperatorName
32
- }
33
-
34
- Constant("mobileCountryCode") {
35
- telephonyManager()?.simOperator?.substring(0, 3)
36
- }
37
-
38
- Constant("mobileNetworkCode") {
39
- telephonyManager()?.simOperator?.substring(3)
40
- }
41
-
42
22
  AsyncFunction<Int>("getCellularGenerationAsync") {
43
23
  try {
44
24
  getCurrentGeneration()
@@ -1,104 +1,11 @@
1
1
  import { CellularGeneration, PermissionResponse } from './Cellular.types';
2
2
  export { CellularGeneration };
3
- /**
4
- * Indicates if the carrier allows making VoIP calls on its network. On Android, this checks whether
5
- * the system supports SIP-based VoIP API. See the [Android documentation](https://developer.android.com/reference/android/net/sip/SipManager.html#isVoipSupported(android.content.Context))
6
- * for more information.
7
- *
8
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
9
- * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install
10
- * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.
11
- *
12
- * On web, this returns `null`.
13
- *
14
- * @example
15
- * ```ts
16
- * Cellular.allowsVoip; // true or false
17
- * ```
18
- * @deprecated Use [`allowsVoipAsync()`](#cellularallowsvoipasync) instead.
19
- *
20
- */
21
- export declare const allowsVoip: boolean | null;
22
- /**
23
- * The name of the user’s home cellular service provider. If the device has dual SIM cards, only the
24
- * carrier for the currently active SIM card will be returned. On Android, this value is only
25
- * available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).
26
- * Otherwise, this returns `null`.
27
- *
28
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
29
- * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces
30
- * the previous value of this property. The value for this property is `null` if the user never
31
- * configured a carrier for the device.
32
- *
33
- * On web, this returns `null`.
34
- *
35
- * @example
36
- * ```ts
37
- * Cellular.carrier; // "T-Mobile" or "Verizon"
38
- * ```
39
- * @deprecated Use [`getCarrierNameAsync()`](#cellulargetcarriernameasync) instead.
40
- *
41
- */
42
- export declare const carrier: string | null;
43
- /**
44
- * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if any
45
- * of the following apply:
46
- * - The device is in airplane mode.
47
- * - There is no SIM card in the device.
48
- * - The device is outside of cellular service range.
49
- *
50
- * On web, this returns `null`.
51
- *
52
- * @example
53
- * ```ts
54
- * Cellular.isoCountryCode; // "us" or "au"
55
- * ```
56
- * @deprecated Use [`getIsoCountryCodeAsync()`](#cellulargetisocountrycodeasync) instead.
57
- *
58
- */
59
- export declare const isoCountryCode: string | null;
60
- /**
61
- * The mobile country code (MCC) for the user’s current registered cellular service provider.
62
- * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this
63
- * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.
64
- * Furthermore, the value for this property is `null` if any of the following apply:
65
- * - There is no SIM card in the device.
66
- * - The device is outside of cellular service range.
67
- *
68
- * On web, this returns `null`.
69
- *
70
- * @example
71
- * ```ts
72
- * Cellular.mobileCountryCode; // "310"
73
- * ```
74
- * @deprecated Use [`getMobileCountryCodeAsync()`](#cellulargetmobilecountrycodeasync) instead.
75
- *
76
- */
77
- export declare const mobileCountryCode: string | null;
78
- /**
79
- * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if
80
- * any of the following apply:
81
- * - The device is in airplane mode.
82
- * - There is no SIM card in the device.
83
- * - The device is outside of cellular service range.
84
- *
85
- * On web, this returns `null`.
86
- *
87
- * @example
88
- * ```ts
89
- * Cellular.mobileNetworkCode; // "260"
90
- * ```
91
- * @deprecated Use [`getMobileNetworkCodeAsync()`](#cellulargetmobilenetworkcodeasync) instead.
92
- *
93
- */
94
- export declare const mobileNetworkCode: string | null;
95
3
  /**
96
4
  * @return Returns a promise which fulfils with a [`Cellular.CellularGeneration`](#cellulargeneration)
97
5
  * enum value that represents the current cellular-generation type.
98
6
  *
99
- * You will need to check if the native permission has been accepted to obtain generation.
100
- * If the permission is denied `getCellularGenerationAsync` will resolve to `Cellular.Cellular Generation.UNKNOWN`.
101
-
7
+ * You need to check if the native permission has been accepted to obtain generation.
8
+ * If the permission is denied, `getCellularGenerationAsync` resolves with `Cellular.CellularGeneration.UNKNOWN`.
102
9
  *
103
10
  * On web, this method uses [`navigator.connection.effectiveType`](https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/effectiveType)
104
11
  * to detect the effective type of the connection using a combination of recently observed
@@ -121,7 +28,9 @@ export declare function getCellularGenerationAsync(): Promise<CellularGeneration
121
28
  * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install
122
29
  * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.
123
30
  *
124
- * On web, this returns `null`.
31
+ * On iOS and web, this returns `null`.
32
+ *
33
+ * @platform android
125
34
  *
126
35
  * @example
127
36
  * ```ts
@@ -137,7 +46,9 @@ export declare function allowsVoipAsync(): Promise<boolean | null>;
137
46
  * - There is no SIM card in the device.
138
47
  * - The device is outside of cellular service range.
139
48
  *
140
- * On web, this returns `null`.
49
+ * On iOS and web, this returns `null`.
50
+ *
51
+ * @platform android
141
52
  *
142
53
  * @example
143
54
  * ```ts
@@ -148,17 +59,14 @@ export declare function allowsVoipAsync(): Promise<boolean | null>;
148
59
  export declare function getIsoCountryCodeAsync(): Promise<string | null>;
149
60
  /**
150
61
  * @return Returns name of the user’s home cellular service provider. If the device has dual SIM cards, only the
151
- * carrier for the currently active SIM card will be returned.
62
+ * carrier for the currently active SIM card is returned.
152
63
  *
153
64
  * On Android, this value is only available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).
154
65
  * Otherwise, this returns `null`.
155
66
  *
156
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
157
- * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces
158
- * the previous value of this property. The value for this property is `null` if the user never
159
- * configured a carrier for the device.
67
+ * On iOS and web, this returns `null`.
160
68
  *
161
- * On web, this returns `null`.
69
+ * @platform android
162
70
  *
163
71
  * @example
164
72
  * ```ts
@@ -175,7 +83,9 @@ export declare function getCarrierNameAsync(): Promise<string | null>;
175
83
  * - There is no SIM card in the device.
176
84
  * - The device is outside of cellular service range.
177
85
  *
178
- * On web, this returns `null`.
86
+ * On iOS and web, this returns `null`.
87
+ *
88
+ * @platform android
179
89
  *
180
90
  * @example
181
91
  * ```ts
@@ -192,7 +102,9 @@ export declare function getMobileCountryCodeAsync(): Promise<string | null>;
192
102
  * - There is no SIM card in the device.
193
103
  * - The device is outside of cellular service range.
194
104
  *
195
- * On web, this returns `null`.
105
+ * On iOS and web, this returns `null`.
106
+ *
107
+ * @platform android
196
108
  *
197
109
  * @example
198
110
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"Cellular.d.ts","sourceRoot":"","sources":["../src/Cellular.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,GAAG,IAAoD,CAAC;AAGxF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,GAAG,IAAiD,CAAC;AAGjF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,GAAG,IAAwD,CAAC;AAG/F;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,GAAG,IAEjC,CAAC;AAGT;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,GAAG,IAEjC,CAAC;AAGT;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAK9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAK/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAWvE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAW3E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,wLAGzB,CAAC"}
1
+ {"version":3,"file":"Cellular.d.ts","sourceRoot":"","sources":["../src/Cellular.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAK9E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ/D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQrE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQlE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAWvE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAW3E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,wLAGzB,CAAC"}
package/build/Cellular.js CHANGED
@@ -3,114 +3,12 @@ import { CellularGeneration } from './Cellular.types';
3
3
  import ExpoCellular from './ExpoCellular';
4
4
  export { CellularGeneration };
5
5
  // @needsAudit
6
- /**
7
- * Indicates if the carrier allows making VoIP calls on its network. On Android, this checks whether
8
- * the system supports SIP-based VoIP API. See the [Android documentation](https://developer.android.com/reference/android/net/sip/SipManager.html#isVoipSupported(android.content.Context))
9
- * for more information.
10
- *
11
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
12
- * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install
13
- * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.
14
- *
15
- * On web, this returns `null`.
16
- *
17
- * @example
18
- * ```ts
19
- * Cellular.allowsVoip; // true or false
20
- * ```
21
- * @deprecated Use [`allowsVoipAsync()`](#cellularallowsvoipasync) instead.
22
- *
23
- */
24
- export const allowsVoip = ExpoCellular ? ExpoCellular.allowsVoip : null;
25
- // @needsAudit
26
- /**
27
- * The name of the user’s home cellular service provider. If the device has dual SIM cards, only the
28
- * carrier for the currently active SIM card will be returned. On Android, this value is only
29
- * available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).
30
- * Otherwise, this returns `null`.
31
- *
32
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
33
- * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces
34
- * the previous value of this property. The value for this property is `null` if the user never
35
- * configured a carrier for the device.
36
- *
37
- * On web, this returns `null`.
38
- *
39
- * @example
40
- * ```ts
41
- * Cellular.carrier; // "T-Mobile" or "Verizon"
42
- * ```
43
- * @deprecated Use [`getCarrierNameAsync()`](#cellulargetcarriernameasync) instead.
44
- *
45
- */
46
- export const carrier = ExpoCellular ? ExpoCellular.carrier : null;
47
- // @needsAudit
48
- /**
49
- * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if any
50
- * of the following apply:
51
- * - The device is in airplane mode.
52
- * - There is no SIM card in the device.
53
- * - The device is outside of cellular service range.
54
- *
55
- * On web, this returns `null`.
56
- *
57
- * @example
58
- * ```ts
59
- * Cellular.isoCountryCode; // "us" or "au"
60
- * ```
61
- * @deprecated Use [`getIsoCountryCodeAsync()`](#cellulargetisocountrycodeasync) instead.
62
- *
63
- */
64
- export const isoCountryCode = ExpoCellular ? ExpoCellular.isoCountryCode : null;
65
- // @needsAudit
66
- /**
67
- * The mobile country code (MCC) for the user’s current registered cellular service provider.
68
- * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this
69
- * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.
70
- * Furthermore, the value for this property is `null` if any of the following apply:
71
- * - There is no SIM card in the device.
72
- * - The device is outside of cellular service range.
73
- *
74
- * On web, this returns `null`.
75
- *
76
- * @example
77
- * ```ts
78
- * Cellular.mobileCountryCode; // "310"
79
- * ```
80
- * @deprecated Use [`getMobileCountryCodeAsync()`](#cellulargetmobilecountrycodeasync) instead.
81
- *
82
- */
83
- export const mobileCountryCode = ExpoCellular
84
- ? ExpoCellular.mobileCountryCode
85
- : null;
86
- // @needsAudit
87
- /**
88
- * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if
89
- * any of the following apply:
90
- * - The device is in airplane mode.
91
- * - There is no SIM card in the device.
92
- * - The device is outside of cellular service range.
93
- *
94
- * On web, this returns `null`.
95
- *
96
- * @example
97
- * ```ts
98
- * Cellular.mobileNetworkCode; // "260"
99
- * ```
100
- * @deprecated Use [`getMobileNetworkCodeAsync()`](#cellulargetmobilenetworkcodeasync) instead.
101
- *
102
- */
103
- export const mobileNetworkCode = ExpoCellular
104
- ? ExpoCellular.mobileNetworkCode
105
- : null;
106
- // @needsAudit
107
6
  /**
108
7
  * @return Returns a promise which fulfils with a [`Cellular.CellularGeneration`](#cellulargeneration)
109
8
  * enum value that represents the current cellular-generation type.
110
9
  *
111
- * You will need to check if the native permission has been accepted to obtain generation.
112
- * If the permission is denied `getCellularGenerationAsync` will resolve to `Cellular.Cellular Generation.UNKNOWN`.
113
-
10
+ * You need to check if the native permission has been accepted to obtain generation.
11
+ * If the permission is denied, `getCellularGenerationAsync` resolves with `Cellular.CellularGeneration.UNKNOWN`.
114
12
  *
115
13
  * On web, this method uses [`navigator.connection.effectiveType`](https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/effectiveType)
116
14
  * to detect the effective type of the connection using a combination of recently observed
@@ -138,7 +36,9 @@ export async function getCellularGenerationAsync() {
138
36
  * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install
139
37
  * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.
140
38
  *
141
- * On web, this returns `null`.
39
+ * On iOS and web, this returns `null`.
40
+ *
41
+ * @platform android
142
42
  *
143
43
  * @example
144
44
  * ```ts
@@ -146,6 +46,9 @@ export async function getCellularGenerationAsync() {
146
46
  * ```
147
47
  */
148
48
  export async function allowsVoipAsync() {
49
+ if (Platform.OS === 'ios') {
50
+ return null;
51
+ }
149
52
  if (!ExpoCellular.allowsVoipAsync) {
150
53
  throw new UnavailabilityError('expo-cellular', 'allowsVoipAsync');
151
54
  }
@@ -159,7 +62,9 @@ export async function allowsVoipAsync() {
159
62
  * - There is no SIM card in the device.
160
63
  * - The device is outside of cellular service range.
161
64
  *
162
- * On web, this returns `null`.
65
+ * On iOS and web, this returns `null`.
66
+ *
67
+ * @platform android
163
68
  *
164
69
  * @example
165
70
  * ```ts
@@ -168,6 +73,9 @@ export async function allowsVoipAsync() {
168
73
  *
169
74
  */
170
75
  export async function getIsoCountryCodeAsync() {
76
+ if (Platform.OS === 'ios') {
77
+ return null;
78
+ }
171
79
  if (!ExpoCellular.getIsoCountryCodeAsync) {
172
80
  throw new UnavailabilityError('expo-cellular', 'getIsoCountryCodeAsync');
173
81
  }
@@ -175,17 +83,14 @@ export async function getIsoCountryCodeAsync() {
175
83
  }
176
84
  /**
177
85
  * @return Returns name of the user’s home cellular service provider. If the device has dual SIM cards, only the
178
- * carrier for the currently active SIM card will be returned.
86
+ * carrier for the currently active SIM card is returned.
179
87
  *
180
88
  * On Android, this value is only available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).
181
89
  * Otherwise, this returns `null`.
182
90
  *
183
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
184
- * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces
185
- * the previous value of this property. The value for this property is `null` if the user never
186
- * configured a carrier for the device.
91
+ * On iOS and web, this returns `null`.
187
92
  *
188
- * On web, this returns `null`.
93
+ * @platform android
189
94
  *
190
95
  * @example
191
96
  * ```ts
@@ -193,6 +98,9 @@ export async function getIsoCountryCodeAsync() {
193
98
  * ```
194
99
  */
195
100
  export async function getCarrierNameAsync() {
101
+ if (Platform.OS === 'ios') {
102
+ return null;
103
+ }
196
104
  if (!ExpoCellular.getCarrierNameAsync) {
197
105
  throw new UnavailabilityError('expo-cellular', 'getCarrierNameAsync');
198
106
  }
@@ -207,7 +115,9 @@ export async function getCarrierNameAsync() {
207
115
  * - There is no SIM card in the device.
208
116
  * - The device is outside of cellular service range.
209
117
  *
210
- * On web, this returns `null`.
118
+ * On iOS and web, this returns `null`.
119
+ *
120
+ * @platform android
211
121
  *
212
122
  * @example
213
123
  * ```ts
@@ -215,6 +125,9 @@ export async function getCarrierNameAsync() {
215
125
  * ```
216
126
  */
217
127
  export async function getMobileCountryCodeAsync() {
128
+ if (Platform.OS === 'ios') {
129
+ return null;
130
+ }
218
131
  if (!ExpoCellular.getMobileCountryCodeAsync) {
219
132
  throw new UnavailabilityError('expo-cellular', 'getMobileCountryCodeAsync');
220
133
  }
@@ -229,7 +142,9 @@ export async function getMobileCountryCodeAsync() {
229
142
  * - There is no SIM card in the device.
230
143
  * - The device is outside of cellular service range.
231
144
  *
232
- * On web, this returns `null`.
145
+ * On iOS and web, this returns `null`.
146
+ *
147
+ * @platform android
233
148
  *
234
149
  * @example
235
150
  * ```ts
@@ -237,6 +152,9 @@ export async function getMobileCountryCodeAsync() {
237
152
  * ```
238
153
  */
239
154
  export async function getMobileNetworkCodeAsync() {
155
+ if (Platform.OS === 'ios') {
156
+ return null;
157
+ }
240
158
  if (!ExpoCellular.getMobileNetworkCodeAsync) {
241
159
  throw new UnavailabilityError('expo-cellular', 'getMobileNetworkCodeAsync');
242
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Cellular.js","sourceRoot":"","sources":["../src/Cellular.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createPermissionHook,\n PermissionStatus,\n Platform,\n UnavailabilityError,\n} from 'expo-modules-core';\n\nimport { CellularGeneration, PermissionResponse } from './Cellular.types';\nimport ExpoCellular from './ExpoCellular';\n\nexport { CellularGeneration };\n\n// @needsAudit\n/**\n * Indicates if the carrier allows making VoIP calls on its network. On Android, this checks whether\n * the system supports SIP-based VoIP API. See the [Android documentation](https://developer.android.com/reference/android/net/sip/SipManager.html#isVoipSupported(android.content.Context))\n * for more information.\n *\n * On iOS, if you configure a device for a carrier and then remove the SIM card, this property\n * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install\n * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * Cellular.allowsVoip; // true or false\n * ```\n * @deprecated Use [`allowsVoipAsync()`](#cellularallowsvoipasync) instead.\n *\n */\nexport const allowsVoip: boolean | null = ExpoCellular ? ExpoCellular.allowsVoip : null;\n\n// @needsAudit\n/**\n * The name of the user’s home cellular service provider. If the device has dual SIM cards, only the\n * carrier for the currently active SIM card will be returned. On Android, this value is only\n * available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).\n * Otherwise, this returns `null`.\n *\n * On iOS, if you configure a device for a carrier and then remove the SIM card, this property\n * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces\n * the previous value of this property. The value for this property is `null` if the user never\n * configured a carrier for the device.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * Cellular.carrier; // \"T-Mobile\" or \"Verizon\"\n * ```\n * @deprecated Use [`getCarrierNameAsync()`](#cellulargetcarriernameasync) instead.\n *\n */\nexport const carrier: string | null = ExpoCellular ? ExpoCellular.carrier : null;\n\n// @needsAudit\n/**\n * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if any\n * of the following apply:\n * - The device is in airplane mode.\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * Cellular.isoCountryCode; // \"us\" or \"au\"\n * ```\n * @deprecated Use [`getIsoCountryCodeAsync()`](#cellulargetisocountrycodeasync) instead.\n *\n */\nexport const isoCountryCode: string | null = ExpoCellular ? ExpoCellular.isoCountryCode : null;\n\n// @needsAudit\n/**\n * The mobile country code (MCC) for the user’s current registered cellular service provider.\n * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this\n * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.\n * Furthermore, the value for this property is `null` if any of the following apply:\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * Cellular.mobileCountryCode; // \"310\"\n * ```\n * @deprecated Use [`getMobileCountryCodeAsync()`](#cellulargetmobilecountrycodeasync) instead.\n *\n */\nexport const mobileCountryCode: string | null = ExpoCellular\n ? ExpoCellular.mobileCountryCode\n : null;\n\n// @needsAudit\n/**\n * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if\n * any of the following apply:\n * - The device is in airplane mode.\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * Cellular.mobileNetworkCode; // \"260\"\n * ```\n * @deprecated Use [`getMobileNetworkCodeAsync()`](#cellulargetmobilenetworkcodeasync) instead.\n *\n */\nexport const mobileNetworkCode: string | null = ExpoCellular\n ? ExpoCellular.mobileNetworkCode\n : null;\n\n// @needsAudit\n/**\n * @return Returns a promise which fulfils with a [`Cellular.CellularGeneration`](#cellulargeneration)\n * enum value that represents the current cellular-generation type.\n *\n * You will need to check if the native permission has been accepted to obtain generation.\n * If the permission is denied `getCellularGenerationAsync` will resolve to `Cellular.Cellular Generation.UNKNOWN`.\n\n *\n * On web, this method uses [`navigator.connection.effectiveType`](https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/effectiveType)\n * to detect the effective type of the connection using a combination of recently observed\n * round-trip time and downlink values. See [here](https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API)\n * to view browser compatibility.\n *\n * @example\n * ```ts\n * await Cellular.getCellularGenerationAsync();\n * // CellularGeneration.CELLULAR_4G\n * ```\n */\nexport async function getCellularGenerationAsync(): Promise<CellularGeneration> {\n if (!ExpoCellular.getCellularGenerationAsync) {\n throw new UnavailabilityError('expo-cellular', 'getCellularGenerationAsync');\n }\n return await ExpoCellular.getCellularGenerationAsync();\n}\n\n/**\n * @return Returns if the carrier allows making VoIP calls on its network. On Android, this checks whether\n * the system supports SIP-based VoIP API. See [here](https://developer.android.com/reference/android/net/sip/SipManager.html#isVoipSupported(android.content.Context))\n * to view more information.\n *\n * On iOS, if you configure a device for a carrier and then remove the SIM card, this property\n * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install\n * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * await Cellular.allowsVoipAsync(); // true or false\n * ```\n */\nexport async function allowsVoipAsync(): Promise<boolean | null> {\n if (!ExpoCellular.allowsVoipAsync) {\n throw new UnavailabilityError('expo-cellular', 'allowsVoipAsync');\n }\n return await ExpoCellular.allowsVoipAsync();\n}\n\n/**\n * @return Returns the ISO country code for the user’s cellular service provider.\n *\n * On iOS, the value is `null` if any of the following apply:\n * - The device is in airplane mode.\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * await Cellular.getIsoCountryCodeAsync(); // \"us\" or \"au\"\n * ```\n *\n */\nexport async function getIsoCountryCodeAsync(): Promise<string | null> {\n if (!ExpoCellular.getIsoCountryCodeAsync) {\n throw new UnavailabilityError('expo-cellular', 'getIsoCountryCodeAsync');\n }\n return await ExpoCellular.getIsoCountryCodeAsync();\n}\n\n/**\n * @return Returns name of the user’s home cellular service provider. If the device has dual SIM cards, only the\n * carrier for the currently active SIM card will be returned.\n *\n * On Android, this value is only available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).\n * Otherwise, this returns `null`.\n *\n * On iOS, if you configure a device for a carrier and then remove the SIM card, this property\n * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces\n * the previous value of this property. The value for this property is `null` if the user never\n * configured a carrier for the device.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * await Cellular.getCarrierNameAsync(); // \"T-Mobile\" or \"Verizon\"\n * ```\n */\nexport async function getCarrierNameAsync(): Promise<string | null> {\n if (!ExpoCellular.getCarrierNameAsync) {\n throw new UnavailabilityError('expo-cellular', 'getCarrierNameAsync');\n }\n return await ExpoCellular.getCarrierNameAsync();\n}\n\n/**\n * @return Returns mobile country code (MCC) for the user’s current registered cellular service provider.\n *\n * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this\n * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.\n * Furthermore, the value for this property is `null` if any of the following apply:\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * await Cellular.getMobileCountryCodeAsync(); // \"310\"\n * ```\n */\nexport async function getMobileCountryCodeAsync(): Promise<string | null> {\n if (!ExpoCellular.getMobileCountryCodeAsync) {\n throw new UnavailabilityError('expo-cellular', 'getMobileCountryCodeAsync');\n }\n return await ExpoCellular.getMobileCountryCodeAsync();\n}\n\n/**\n * @return Returns the mobile network code (MNC) for the user’s current registered cellular service provider.\n *\n * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this\n * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.\n * Furthermore, the value for this property is `null` if any of the following apply:\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On web, this returns `null`.\n *\n * @example\n * ```ts\n * await Cellular.getMobileNetworkCodeAsync(); // \"310\"\n * ```\n */\nexport async function getMobileNetworkCodeAsync(): Promise<string | null> {\n if (!ExpoCellular.getMobileNetworkCodeAsync) {\n throw new UnavailabilityError('expo-cellular', 'getMobileNetworkCodeAsync');\n }\n return await ExpoCellular.getMobileNetworkCodeAsync();\n}\n\n/**\n * Checks user's permissions for accessing phone state.\n */\nexport async function getPermissionsAsync(): Promise<PermissionResponse> {\n if (Platform.OS === 'android') {\n return await ExpoCellular.getPermissionsAsync();\n }\n\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\n/**\n * Asks the user to grant permissions for accessing the phone state.\n */\nexport async function requestPermissionsAsync(): Promise<PermissionResponse> {\n if (Platform.OS === 'android') {\n return await ExpoCellular.requestPermissionsAsync();\n }\n\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\n/**\n * Check or request permissions to access the phone state.\n * This uses both `Cellular.requestPermissionsAsync` and `Cellular.getPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Cellular.usePermissions();\n * ```\n */\nexport const usePermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n});\n"]}
1
+ {"version":3,"file":"Cellular.js","sourceRoot":"","sources":["../src/Cellular.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createPermissionHook,\n PermissionStatus,\n Platform,\n UnavailabilityError,\n} from 'expo-modules-core';\n\nimport { CellularGeneration, PermissionResponse } from './Cellular.types';\nimport ExpoCellular from './ExpoCellular';\n\nexport { CellularGeneration };\n\n// @needsAudit\n/**\n * @return Returns a promise which fulfils with a [`Cellular.CellularGeneration`](#cellulargeneration)\n * enum value that represents the current cellular-generation type.\n *\n * You need to check if the native permission has been accepted to obtain generation.\n * If the permission is denied, `getCellularGenerationAsync` resolves with `Cellular.CellularGeneration.UNKNOWN`.\n *\n * On web, this method uses [`navigator.connection.effectiveType`](https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/effectiveType)\n * to detect the effective type of the connection using a combination of recently observed\n * round-trip time and downlink values. See [here](https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API)\n * to view browser compatibility.\n *\n * @example\n * ```ts\n * await Cellular.getCellularGenerationAsync();\n * // CellularGeneration.CELLULAR_4G\n * ```\n */\nexport async function getCellularGenerationAsync(): Promise<CellularGeneration> {\n if (!ExpoCellular.getCellularGenerationAsync) {\n throw new UnavailabilityError('expo-cellular', 'getCellularGenerationAsync');\n }\n return await ExpoCellular.getCellularGenerationAsync();\n}\n\n/**\n * @return Returns if the carrier allows making VoIP calls on its network. On Android, this checks whether\n * the system supports SIP-based VoIP API. See [here](https://developer.android.com/reference/android/net/sip/SipManager.html#isVoipSupported(android.content.Context))\n * to view more information.\n *\n * On iOS, if you configure a device for a carrier and then remove the SIM card, this property\n * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install\n * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.\n *\n * On iOS and web, this returns `null`.\n *\n * @platform android\n *\n * @example\n * ```ts\n * await Cellular.allowsVoipAsync(); // true or false\n * ```\n */\nexport async function allowsVoipAsync(): Promise<boolean | null> {\n if (Platform.OS === 'ios') {\n return null;\n }\n if (!ExpoCellular.allowsVoipAsync) {\n throw new UnavailabilityError('expo-cellular', 'allowsVoipAsync');\n }\n return await ExpoCellular.allowsVoipAsync();\n}\n\n/**\n * @return Returns the ISO country code for the user’s cellular service provider.\n *\n * On iOS, the value is `null` if any of the following apply:\n * - The device is in airplane mode.\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On iOS and web, this returns `null`.\n *\n * @platform android\n *\n * @example\n * ```ts\n * await Cellular.getIsoCountryCodeAsync(); // \"us\" or \"au\"\n * ```\n *\n */\nexport async function getIsoCountryCodeAsync(): Promise<string | null> {\n if (Platform.OS === 'ios') {\n return null;\n }\n if (!ExpoCellular.getIsoCountryCodeAsync) {\n throw new UnavailabilityError('expo-cellular', 'getIsoCountryCodeAsync');\n }\n return await ExpoCellular.getIsoCountryCodeAsync();\n}\n\n/**\n * @return Returns name of the user’s home cellular service provider. If the device has dual SIM cards, only the\n * carrier for the currently active SIM card is returned.\n *\n * On Android, this value is only available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).\n * Otherwise, this returns `null`.\n *\n * On iOS and web, this returns `null`.\n *\n * @platform android\n *\n * @example\n * ```ts\n * await Cellular.getCarrierNameAsync(); // \"T-Mobile\" or \"Verizon\"\n * ```\n */\nexport async function getCarrierNameAsync(): Promise<string | null> {\n if (Platform.OS === 'ios') {\n return null;\n }\n if (!ExpoCellular.getCarrierNameAsync) {\n throw new UnavailabilityError('expo-cellular', 'getCarrierNameAsync');\n }\n return await ExpoCellular.getCarrierNameAsync();\n}\n\n/**\n * @return Returns mobile country code (MCC) for the user’s current registered cellular service provider.\n *\n * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this\n * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.\n * Furthermore, the value for this property is `null` if any of the following apply:\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On iOS and web, this returns `null`.\n *\n * @platform android\n *\n * @example\n * ```ts\n * await Cellular.getMobileCountryCodeAsync(); // \"310\"\n * ```\n */\nexport async function getMobileCountryCodeAsync(): Promise<string | null> {\n if (Platform.OS === 'ios') {\n return null;\n }\n if (!ExpoCellular.getMobileCountryCodeAsync) {\n throw new UnavailabilityError('expo-cellular', 'getMobileCountryCodeAsync');\n }\n return await ExpoCellular.getMobileCountryCodeAsync();\n}\n\n/**\n * @return Returns the mobile network code (MNC) for the user’s current registered cellular service provider.\n *\n * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this\n * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.\n * Furthermore, the value for this property is `null` if any of the following apply:\n * - There is no SIM card in the device.\n * - The device is outside of cellular service range.\n *\n * On iOS and web, this returns `null`.\n *\n * @platform android\n *\n * @example\n * ```ts\n * await Cellular.getMobileNetworkCodeAsync(); // \"310\"\n * ```\n */\nexport async function getMobileNetworkCodeAsync(): Promise<string | null> {\n if (Platform.OS === 'ios') {\n return null;\n }\n if (!ExpoCellular.getMobileNetworkCodeAsync) {\n throw new UnavailabilityError('expo-cellular', 'getMobileNetworkCodeAsync');\n }\n return await ExpoCellular.getMobileNetworkCodeAsync();\n}\n\n/**\n * Checks user's permissions for accessing phone state.\n */\nexport async function getPermissionsAsync(): Promise<PermissionResponse> {\n if (Platform.OS === 'android') {\n return await ExpoCellular.getPermissionsAsync();\n }\n\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\n/**\n * Asks the user to grant permissions for accessing the phone state.\n */\nexport async function requestPermissionsAsync(): Promise<PermissionResponse> {\n if (Platform.OS === 'android') {\n return await ExpoCellular.requestPermissionsAsync();\n }\n\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n granted: true,\n canAskAgain: true,\n };\n}\n\n/**\n * Check or request permissions to access the phone state.\n * This uses both `Cellular.requestPermissionsAsync` and `Cellular.getPermissionsAsync` to interact with the permissions.\n *\n * @example\n * ```ts\n * const [status, requestPermission] = Cellular.usePermissions();\n * ```\n */\nexport const usePermissions = createPermissionHook({\n getMethod: getPermissionsAsync,\n requestMethod: requestPermissionsAsync,\n});\n"]}
@@ -8,7 +8,7 @@
8
8
  "publication": {
9
9
  "groupId": "host.exp.exponent",
10
10
  "artifactId": "expo.modules.cellular",
11
- "version": "55.0.4",
11
+ "version": "55.0.6",
12
12
  "repository": "local-maven-repo"
13
13
  }
14
14
  }
@@ -2,58 +2,13 @@ import CoreTelephony
2
2
  import ExpoModulesCore
3
3
 
4
4
  public class CellularModule: Module {
5
- let carrier = currentCarrier()
6
5
 
7
6
  public func definition() -> ModuleDefinition {
8
7
  Name("ExpoCellular")
9
8
 
10
- Constant("allowsVoip") {
11
- carrier?.allowsVOIP
12
- }
13
-
14
- Constant("carrier") {
15
- carrier?.carrierName
16
- }
17
-
18
- Constant("isoCountryCode") {
19
- carrier?.isoCountryCode
20
- }
21
-
22
- Constant("mobileCountryCode") {
23
- carrier?.mobileCountryCode
24
- }
25
-
26
- Constant("mobileNetworkCode") {
27
- carrier?.mobileNetworkCode
28
- }
29
-
30
- Constant("generation") {
31
- Self.currentCellularGeneration().rawValue
32
- }
33
-
34
9
  AsyncFunction("getCellularGenerationAsync") { () -> Int in
35
10
  Self.currentCellularGeneration().rawValue
36
11
  }
37
-
38
- AsyncFunction("allowsVoipAsync") { () -> Bool? in
39
- Self.currentCarrier()?.allowsVOIP
40
- }
41
-
42
- AsyncFunction("getIsoCountryCodeAsync") { () -> String? in
43
- Self.currentCarrier()?.isoCountryCode
44
- }
45
-
46
- AsyncFunction("getCarrierNameAsync") { () -> String? in
47
- Self.currentCarrier()?.carrierName
48
- }
49
-
50
- AsyncFunction("getMobileCountryCodeAsync") { () -> String? in
51
- Self.currentCarrier()?.mobileCountryCode
52
- }
53
-
54
- AsyncFunction("getMobileNetworkCodeAsync") { () -> String? in
55
- Self.currentCarrier()?.mobileNetworkCode
56
- }
57
12
  }
58
13
 
59
14
  // MARK: - internals
@@ -103,15 +58,4 @@ public class CellularModule: Module {
103
58
  return netinfo.serviceCurrentRadioAccessTechnology?.values.first
104
59
  }
105
60
 
106
- static func currentCarrier() -> CTCarrier? {
107
- let netinfo = CTTelephonyNetworkInfo()
108
-
109
- if let providers = netinfo.serviceSubscriberCellularProviders {
110
- for carrier in providers.values where carrier.carrierName != nil {
111
- return carrier
112
- }
113
- return providers.values.first
114
- }
115
- return nil
116
- }
117
61
  }
@@ -0,0 +1 @@
1
+ 2f3e6fa636d98d3298208b8c2a184d4e643b126230fa64187495d8507947d41c
@@ -0,0 +1 @@
1
+ 15b833989c3fbe37a13c3077facaec19de84d8db4ad81f0c4c4d941082ff5c59737957c08a1fd21f7a1a411d26f6bca28dff4f05edb8d9ab176457fddf78e705
@@ -0,0 +1 @@
1
+ 64654de2db0ed59261745e1a8ce277dbb37b68a9f96f40ffc99832eef21ee4fd
@@ -0,0 +1 @@
1
+ 579440acbd03fd98f39978d3cef3ee86a0f64253910d80eb1e9030c8f5bc15c4a813371092702c14ca500d09ab95a1423d43ec0203e2e2b2293fadfee2c8b5a1
@@ -0,0 +1,87 @@
1
+ {
2
+ "formatVersion": "1.1",
3
+ "component": {
4
+ "group": "host.exp.exponent",
5
+ "module": "expo.modules.cellular",
6
+ "version": "55.0.6",
7
+ "attributes": {
8
+ "org.gradle.status": "release"
9
+ }
10
+ },
11
+ "createdBy": {
12
+ "gradle": {
13
+ "version": "9.0.0"
14
+ }
15
+ },
16
+ "variants": [
17
+ {
18
+ "name": "releaseVariantReleaseApiPublication",
19
+ "attributes": {
20
+ "org.gradle.category": "library",
21
+ "org.gradle.dependency.bundling": "external",
22
+ "org.gradle.libraryelements": "aar",
23
+ "org.gradle.usage": "java-api"
24
+ },
25
+ "files": [
26
+ {
27
+ "name": "expo.modules.cellular-55.0.6.aar",
28
+ "url": "expo.modules.cellular-55.0.6.aar",
29
+ "size": 22527,
30
+ "sha512": "579440acbd03fd98f39978d3cef3ee86a0f64253910d80eb1e9030c8f5bc15c4a813371092702c14ca500d09ab95a1423d43ec0203e2e2b2293fadfee2c8b5a1",
31
+ "sha256": "64654de2db0ed59261745e1a8ce277dbb37b68a9f96f40ffc99832eef21ee4fd",
32
+ "sha1": "2b6894d5ba1fac8d639f0eee283c48c59fc86043",
33
+ "md5": "db8dbf10494f0d202060a471a022e913"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "name": "releaseVariantReleaseRuntimePublication",
39
+ "attributes": {
40
+ "org.gradle.category": "library",
41
+ "org.gradle.dependency.bundling": "external",
42
+ "org.gradle.libraryelements": "aar",
43
+ "org.gradle.usage": "java-runtime"
44
+ },
45
+ "dependencies": [
46
+ {
47
+ "group": "org.jetbrains.kotlin",
48
+ "module": "kotlin-stdlib-jdk7",
49
+ "version": {
50
+ "requires": "2.1.20"
51
+ }
52
+ }
53
+ ],
54
+ "files": [
55
+ {
56
+ "name": "expo.modules.cellular-55.0.6.aar",
57
+ "url": "expo.modules.cellular-55.0.6.aar",
58
+ "size": 22527,
59
+ "sha512": "579440acbd03fd98f39978d3cef3ee86a0f64253910d80eb1e9030c8f5bc15c4a813371092702c14ca500d09ab95a1423d43ec0203e2e2b2293fadfee2c8b5a1",
60
+ "sha256": "64654de2db0ed59261745e1a8ce277dbb37b68a9f96f40ffc99832eef21ee4fd",
61
+ "sha1": "2b6894d5ba1fac8d639f0eee283c48c59fc86043",
62
+ "md5": "db8dbf10494f0d202060a471a022e913"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "name": "releaseVariantReleaseSourcePublication",
68
+ "attributes": {
69
+ "org.gradle.category": "documentation",
70
+ "org.gradle.dependency.bundling": "external",
71
+ "org.gradle.docstype": "sources",
72
+ "org.gradle.usage": "java-runtime"
73
+ },
74
+ "files": [
75
+ {
76
+ "name": "expo.modules.cellular-55.0.6-sources.jar",
77
+ "url": "expo.modules.cellular-55.0.6-sources.jar",
78
+ "size": 2402,
79
+ "sha512": "15b833989c3fbe37a13c3077facaec19de84d8db4ad81f0c4c4d941082ff5c59737957c08a1fd21f7a1a411d26f6bca28dff4f05edb8d9ab176457fddf78e705",
80
+ "sha256": "2f3e6fa636d98d3298208b8c2a184d4e643b126230fa64187495d8507947d41c",
81
+ "sha1": "a46d2d86092c13993b913984035f27f0b7225ca8",
82
+ "md5": "ffb8245f380f199a5b6a461d366b8a1e"
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1 @@
1
+ e173a437a3362c58a7d5f070a807981095619e9402745de655c6014407b0ba37
@@ -0,0 +1 @@
1
+ 3941c1cfecf96c6f3b04fe375780957f05d273ccaab4e697d0896b2dc668021e3e8ba3e8ae96a6ce4f05a2462fe2083127919474c5909e360930f4a0f46f44e6
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.cellular</artifactId>
12
- <version>55.0.4</version>
12
+ <version>55.0.6</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.cellular</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 97f07281bc6101dd7380a5d3672156f95f82c8db2b5c5cb855f32a3d85b60023
@@ -0,0 +1 @@
1
+ 3ff24b51f4c1974e7437773b51ce526492e96f8f937b9a1146d23d11c8478e7d5a4d21b31f9e4b61c5f7e2657112f6da0453201b70ca549b6b3160f449feb64a
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.cellular</artifactId>
5
5
  <versioning>
6
- <latest>55.0.4</latest>
7
- <release>55.0.4</release>
6
+ <latest>55.0.6</latest>
7
+ <release>55.0.6</release>
8
8
  <versions>
9
- <version>55.0.4</version>
9
+ <version>55.0.6</version>
10
10
  </versions>
11
- <lastUpdated>20260203054515</lastUpdated>
11
+ <lastUpdated>20260216170148</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- fb7e3f4012d4456e7c73d7f92c6fee79
1
+ 7aa7e862ecd395c7dd95a77548e1adc8
@@ -1 +1 @@
1
- 516ce00b649eefb8ba43d6d24ba0b2596418fb4e
1
+ d712cbc3b689b15fa538ef28aaeeaab13e639d01
@@ -1 +1 @@
1
- 707d9142ac34c2637540655bdba274297abe16a4537d53ee495e20592256b704
1
+ ea888cc4978769cc1b8e3dcc7c1d0b6c85a6db1a0a1ec4c66bd930307e407122
@@ -1 +1 @@
1
- 458d1562b4b38b9acff470e8e5ecdfe0af217e8e28f9cdb1ec87d0976768a4d0965fea9621822fef7ade7bbdb8ab37d496d2ca547735e22674f29ceb16156bc5
1
+ 3635555486bd5246d2b85c8a7b8fe6b85f626f1c2bc6c195ee8c4e0f62a378c00a0c189523b85bd82bc5bcad9ce894ead4eb88e8b6936ce6bd9d4dbc35ee3229
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-cellular",
3
- "version": "55.0.4",
3
+ "version": "55.0.6",
4
4
  "description": "Provides information about the user’s cellular service provider",
5
5
  "main": "build/Cellular.js",
6
6
  "types": "build/Cellular.d.ts",
@@ -36,5 +36,5 @@
36
36
  "peerDependencies": {
37
37
  "expo": "*"
38
38
  },
39
- "gitHead": "436ffb4355d5207f4a03fbc3568cd33424a40f3e"
39
+ "gitHead": "928cc951854450f3c72e00e8e420e567fabd1f8c"
40
40
  }
package/src/Cellular.ts CHANGED
@@ -10,120 +10,13 @@ import ExpoCellular from './ExpoCellular';
10
10
 
11
11
  export { CellularGeneration };
12
12
 
13
- // @needsAudit
14
- /**
15
- * Indicates if the carrier allows making VoIP calls on its network. On Android, this checks whether
16
- * the system supports SIP-based VoIP API. See the [Android documentation](https://developer.android.com/reference/android/net/sip/SipManager.html#isVoipSupported(android.content.Context))
17
- * for more information.
18
- *
19
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
20
- * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install
21
- * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.
22
- *
23
- * On web, this returns `null`.
24
- *
25
- * @example
26
- * ```ts
27
- * Cellular.allowsVoip; // true or false
28
- * ```
29
- * @deprecated Use [`allowsVoipAsync()`](#cellularallowsvoipasync) instead.
30
- *
31
- */
32
- export const allowsVoip: boolean | null = ExpoCellular ? ExpoCellular.allowsVoip : null;
33
-
34
- // @needsAudit
35
- /**
36
- * The name of the user’s home cellular service provider. If the device has dual SIM cards, only the
37
- * carrier for the currently active SIM card will be returned. On Android, this value is only
38
- * available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).
39
- * Otherwise, this returns `null`.
40
- *
41
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
42
- * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces
43
- * the previous value of this property. The value for this property is `null` if the user never
44
- * configured a carrier for the device.
45
- *
46
- * On web, this returns `null`.
47
- *
48
- * @example
49
- * ```ts
50
- * Cellular.carrier; // "T-Mobile" or "Verizon"
51
- * ```
52
- * @deprecated Use [`getCarrierNameAsync()`](#cellulargetcarriernameasync) instead.
53
- *
54
- */
55
- export const carrier: string | null = ExpoCellular ? ExpoCellular.carrier : null;
56
-
57
- // @needsAudit
58
- /**
59
- * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if any
60
- * of the following apply:
61
- * - The device is in airplane mode.
62
- * - There is no SIM card in the device.
63
- * - The device is outside of cellular service range.
64
- *
65
- * On web, this returns `null`.
66
- *
67
- * @example
68
- * ```ts
69
- * Cellular.isoCountryCode; // "us" or "au"
70
- * ```
71
- * @deprecated Use [`getIsoCountryCodeAsync()`](#cellulargetisocountrycodeasync) instead.
72
- *
73
- */
74
- export const isoCountryCode: string | null = ExpoCellular ? ExpoCellular.isoCountryCode : null;
75
-
76
- // @needsAudit
77
- /**
78
- * The mobile country code (MCC) for the user’s current registered cellular service provider.
79
- * On Android, this value is only available when SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY). Otherwise, this
80
- * returns `null`. On iOS, the value may be null on hardware prior to iPhone 4S when in airplane mode.
81
- * Furthermore, the value for this property is `null` if any of the following apply:
82
- * - There is no SIM card in the device.
83
- * - The device is outside of cellular service range.
84
- *
85
- * On web, this returns `null`.
86
- *
87
- * @example
88
- * ```ts
89
- * Cellular.mobileCountryCode; // "310"
90
- * ```
91
- * @deprecated Use [`getMobileCountryCodeAsync()`](#cellulargetmobilecountrycodeasync) instead.
92
- *
93
- */
94
- export const mobileCountryCode: string | null = ExpoCellular
95
- ? ExpoCellular.mobileCountryCode
96
- : null;
97
-
98
- // @needsAudit
99
- /**
100
- * The ISO country code for the user’s cellular service provider. On iOS, the value is `null` if
101
- * any of the following apply:
102
- * - The device is in airplane mode.
103
- * - There is no SIM card in the device.
104
- * - The device is outside of cellular service range.
105
- *
106
- * On web, this returns `null`.
107
- *
108
- * @example
109
- * ```ts
110
- * Cellular.mobileNetworkCode; // "260"
111
- * ```
112
- * @deprecated Use [`getMobileNetworkCodeAsync()`](#cellulargetmobilenetworkcodeasync) instead.
113
- *
114
- */
115
- export const mobileNetworkCode: string | null = ExpoCellular
116
- ? ExpoCellular.mobileNetworkCode
117
- : null;
118
-
119
13
  // @needsAudit
120
14
  /**
121
15
  * @return Returns a promise which fulfils with a [`Cellular.CellularGeneration`](#cellulargeneration)
122
16
  * enum value that represents the current cellular-generation type.
123
17
  *
124
- * You will need to check if the native permission has been accepted to obtain generation.
125
- * If the permission is denied `getCellularGenerationAsync` will resolve to `Cellular.Cellular Generation.UNKNOWN`.
126
-
18
+ * You need to check if the native permission has been accepted to obtain generation.
19
+ * If the permission is denied, `getCellularGenerationAsync` resolves with `Cellular.CellularGeneration.UNKNOWN`.
127
20
  *
128
21
  * On web, this method uses [`navigator.connection.effectiveType`](https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/effectiveType)
129
22
  * to detect the effective type of the connection using a combination of recently observed
@@ -152,7 +45,9 @@ export async function getCellularGenerationAsync(): Promise<CellularGeneration>
152
45
  * retains the `boolean` value indicating the carrier’s policy regarding VoIP. If you then install
153
46
  * a new SIM card, its VoIP policy `boolean` replaces the previous value of this property.
154
47
  *
155
- * On web, this returns `null`.
48
+ * On iOS and web, this returns `null`.
49
+ *
50
+ * @platform android
156
51
  *
157
52
  * @example
158
53
  * ```ts
@@ -160,6 +55,9 @@ export async function getCellularGenerationAsync(): Promise<CellularGeneration>
160
55
  * ```
161
56
  */
162
57
  export async function allowsVoipAsync(): Promise<boolean | null> {
58
+ if (Platform.OS === 'ios') {
59
+ return null;
60
+ }
163
61
  if (!ExpoCellular.allowsVoipAsync) {
164
62
  throw new UnavailabilityError('expo-cellular', 'allowsVoipAsync');
165
63
  }
@@ -174,7 +72,9 @@ export async function allowsVoipAsync(): Promise<boolean | null> {
174
72
  * - There is no SIM card in the device.
175
73
  * - The device is outside of cellular service range.
176
74
  *
177
- * On web, this returns `null`.
75
+ * On iOS and web, this returns `null`.
76
+ *
77
+ * @platform android
178
78
  *
179
79
  * @example
180
80
  * ```ts
@@ -183,6 +83,9 @@ export async function allowsVoipAsync(): Promise<boolean | null> {
183
83
  *
184
84
  */
185
85
  export async function getIsoCountryCodeAsync(): Promise<string | null> {
86
+ if (Platform.OS === 'ios') {
87
+ return null;
88
+ }
186
89
  if (!ExpoCellular.getIsoCountryCodeAsync) {
187
90
  throw new UnavailabilityError('expo-cellular', 'getIsoCountryCodeAsync');
188
91
  }
@@ -191,17 +94,14 @@ export async function getIsoCountryCodeAsync(): Promise<string | null> {
191
94
 
192
95
  /**
193
96
  * @return Returns name of the user’s home cellular service provider. If the device has dual SIM cards, only the
194
- * carrier for the currently active SIM card will be returned.
97
+ * carrier for the currently active SIM card is returned.
195
98
  *
196
99
  * On Android, this value is only available when the SIM state is [`SIM_STATE_READY`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#SIM_STATE_READY).
197
100
  * Otherwise, this returns `null`.
198
101
  *
199
- * On iOS, if you configure a device for a carrier and then remove the SIM card, this property
200
- * retains the name of the carrier. If you then install a new SIM card, its carrier name replaces
201
- * the previous value of this property. The value for this property is `null` if the user never
202
- * configured a carrier for the device.
102
+ * On iOS and web, this returns `null`.
203
103
  *
204
- * On web, this returns `null`.
104
+ * @platform android
205
105
  *
206
106
  * @example
207
107
  * ```ts
@@ -209,6 +109,9 @@ export async function getIsoCountryCodeAsync(): Promise<string | null> {
209
109
  * ```
210
110
  */
211
111
  export async function getCarrierNameAsync(): Promise<string | null> {
112
+ if (Platform.OS === 'ios') {
113
+ return null;
114
+ }
212
115
  if (!ExpoCellular.getCarrierNameAsync) {
213
116
  throw new UnavailabilityError('expo-cellular', 'getCarrierNameAsync');
214
117
  }
@@ -224,7 +127,9 @@ export async function getCarrierNameAsync(): Promise<string | null> {
224
127
  * - There is no SIM card in the device.
225
128
  * - The device is outside of cellular service range.
226
129
  *
227
- * On web, this returns `null`.
130
+ * On iOS and web, this returns `null`.
131
+ *
132
+ * @platform android
228
133
  *
229
134
  * @example
230
135
  * ```ts
@@ -232,6 +137,9 @@ export async function getCarrierNameAsync(): Promise<string | null> {
232
137
  * ```
233
138
  */
234
139
  export async function getMobileCountryCodeAsync(): Promise<string | null> {
140
+ if (Platform.OS === 'ios') {
141
+ return null;
142
+ }
235
143
  if (!ExpoCellular.getMobileCountryCodeAsync) {
236
144
  throw new UnavailabilityError('expo-cellular', 'getMobileCountryCodeAsync');
237
145
  }
@@ -247,7 +155,9 @@ export async function getMobileCountryCodeAsync(): Promise<string | null> {
247
155
  * - There is no SIM card in the device.
248
156
  * - The device is outside of cellular service range.
249
157
  *
250
- * On web, this returns `null`.
158
+ * On iOS and web, this returns `null`.
159
+ *
160
+ * @platform android
251
161
  *
252
162
  * @example
253
163
  * ```ts
@@ -255,6 +165,9 @@ export async function getMobileCountryCodeAsync(): Promise<string | null> {
255
165
  * ```
256
166
  */
257
167
  export async function getMobileNetworkCodeAsync(): Promise<string | null> {
168
+ if (Platform.OS === 'ios') {
169
+ return null;
170
+ }
258
171
  if (!ExpoCellular.getMobileNetworkCodeAsync) {
259
172
  throw new UnavailabilityError('expo-cellular', 'getMobileNetworkCodeAsync');
260
173
  }
@@ -1 +0,0 @@
1
- 94a7482236869c70566ebc25ea3487f838ba9d5555f49fb712b3feb2d5d6cb32
@@ -1 +0,0 @@
1
- 38c0fb14f7172db372a39af060fdbe574edc6838b1fe36fe96f82fa6cf7080aca67b525496efb2c9faf68aba2c5a3764ee0f911be0be5588b43ad8bf8ac1f8a9
@@ -1 +0,0 @@
1
- bb74a18a082649d7cf4cbf407c99b829cdf025a5b060641d619449a3d9e0253e
@@ -1 +0,0 @@
1
- 76e8a05249202b1ec666e6e71446289f0d7adfb2f4822aa2b200c6edf31e738bd0a8167f20b72488415d81db457b282e4c4312b17de44f38ae16e9c5716adfd7
@@ -1,87 +0,0 @@
1
- {
2
- "formatVersion": "1.1",
3
- "component": {
4
- "group": "host.exp.exponent",
5
- "module": "expo.modules.cellular",
6
- "version": "55.0.4",
7
- "attributes": {
8
- "org.gradle.status": "release"
9
- }
10
- },
11
- "createdBy": {
12
- "gradle": {
13
- "version": "9.0.0"
14
- }
15
- },
16
- "variants": [
17
- {
18
- "name": "releaseVariantReleaseApiPublication",
19
- "attributes": {
20
- "org.gradle.category": "library",
21
- "org.gradle.dependency.bundling": "external",
22
- "org.gradle.libraryelements": "aar",
23
- "org.gradle.usage": "java-api"
24
- },
25
- "files": [
26
- {
27
- "name": "expo.modules.cellular-55.0.4.aar",
28
- "url": "expo.modules.cellular-55.0.4.aar",
29
- "size": 28123,
30
- "sha512": "76e8a05249202b1ec666e6e71446289f0d7adfb2f4822aa2b200c6edf31e738bd0a8167f20b72488415d81db457b282e4c4312b17de44f38ae16e9c5716adfd7",
31
- "sha256": "bb74a18a082649d7cf4cbf407c99b829cdf025a5b060641d619449a3d9e0253e",
32
- "sha1": "7a3537f40115291894f888a964f4fff8fa0b5ea1",
33
- "md5": "81573b9ecf5254172085bd89e1c37a9b"
34
- }
35
- ]
36
- },
37
- {
38
- "name": "releaseVariantReleaseRuntimePublication",
39
- "attributes": {
40
- "org.gradle.category": "library",
41
- "org.gradle.dependency.bundling": "external",
42
- "org.gradle.libraryelements": "aar",
43
- "org.gradle.usage": "java-runtime"
44
- },
45
- "dependencies": [
46
- {
47
- "group": "org.jetbrains.kotlin",
48
- "module": "kotlin-stdlib-jdk7",
49
- "version": {
50
- "requires": "2.1.20"
51
- }
52
- }
53
- ],
54
- "files": [
55
- {
56
- "name": "expo.modules.cellular-55.0.4.aar",
57
- "url": "expo.modules.cellular-55.0.4.aar",
58
- "size": 28123,
59
- "sha512": "76e8a05249202b1ec666e6e71446289f0d7adfb2f4822aa2b200c6edf31e738bd0a8167f20b72488415d81db457b282e4c4312b17de44f38ae16e9c5716adfd7",
60
- "sha256": "bb74a18a082649d7cf4cbf407c99b829cdf025a5b060641d619449a3d9e0253e",
61
- "sha1": "7a3537f40115291894f888a964f4fff8fa0b5ea1",
62
- "md5": "81573b9ecf5254172085bd89e1c37a9b"
63
- }
64
- ]
65
- },
66
- {
67
- "name": "releaseVariantReleaseSourcePublication",
68
- "attributes": {
69
- "org.gradle.category": "documentation",
70
- "org.gradle.dependency.bundling": "external",
71
- "org.gradle.docstype": "sources",
72
- "org.gradle.usage": "java-runtime"
73
- },
74
- "files": [
75
- {
76
- "name": "expo.modules.cellular-55.0.4-sources.jar",
77
- "url": "expo.modules.cellular-55.0.4-sources.jar",
78
- "size": 2456,
79
- "sha512": "38c0fb14f7172db372a39af060fdbe574edc6838b1fe36fe96f82fa6cf7080aca67b525496efb2c9faf68aba2c5a3764ee0f911be0be5588b43ad8bf8ac1f8a9",
80
- "sha256": "94a7482236869c70566ebc25ea3487f838ba9d5555f49fb712b3feb2d5d6cb32",
81
- "sha1": "66d0abcbf234093431f14938b24bbb4ed108efb0",
82
- "md5": "b1588e77245a0882d6cfd7f43ed4208a"
83
- }
84
- ]
85
- }
86
- ]
87
- }
@@ -1 +0,0 @@
1
- b30472931e537400a1c7ad60bb6916dbe1047b79da6e89d8e6db1fd83933bea7
@@ -1 +0,0 @@
1
- 62c3b827f28fb407b996f41793d3350ca5f8be4f3855da15e13fb3a02cc36f0af0665f818d91bc6aedf8a9f04d935257965ffb21d342e6c8cf88dd3403b1d4a5
@@ -1 +0,0 @@
1
- 875f31429d2eb8cd393efff9fcfbca5f01567e00d75c3aeb796a16af2a8a097d
@@ -1 +0,0 @@
1
- 2240c862d4000693eb19ffd9b2f3b01c604c3ac7f0ea7b6678f091f93f7ce7e6099287cd772b9a31191dc218ebe27e67c235f1fc7f691dcee4677cb4d3ecf1d3