React Native module bridge to obtain information about the user’s home cellular service provider.
Makes use of the following native classes:
- iOS
- Android
- Android support
- Promosify all APIs
- RN 0.47 support
All APIs are async functions
boolean allowsVOIP() - Indicates if the carrier allows VoIP calls to be made on its network.
- If you configure a device for a carrier and then remove the SIM card, this property retains the Boolean value indicating the carrier’s policy regarding VoIP.
- Always return
true
on Android.
string carrierName() - The name of the user’s home cellular service provider.
- This string is provided by the carrier and formatted for presentation to the user. The value does not change if the user is roaming; it always represents the provider with whom the user has an account.
- If you configure a device for a carrier and then remove the SIM card, this property retains the name of the carrier.
- The value for this property is 'nil' if the device was never configured for a carrier.
string isoCountryCode() - The ISO country code for the user’s cellular service provider.
- This property uses the ISO 3166-1 country code representation.
- The value for this property is 'nil' if any of the following apply:
- The device is in Airplane mode.
- There is no SIM card in the device.
- The device is outside of cellular service range.
string mobileCountryCode() - The mobile country code (MCC) for the user’s cellular service provider.
- MCCs are defined by ITU-T Recommendation E.212, “List of Mobile Country or Geographical Area Codes.”
- The value for this property is 'nil' if any of the following apply:
- There is no SIM card in the device.
- The device is outside of cellular service range.
- The value may be 'nil' on hardware prior to iPhone 4S when in Airplane mode.
string mobileNetworkCode() - The mobile network code (MNC) for the user’s cellular service provider.
- The value for this property is 'nil' if any of the following apply:
- There is no SIM card in the device.
- The device is outside of cellular service range.
- The value may be 'nil' on hardware prior to iPhone 4S when in Airplane mode.
string mobileNetworkOperator() - return MCC + MNC, e.g 46697
- From inside your project run
npm install react-native-carrier-info --save
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules/react-native-carrier-info/ios
and addRNCarrierInfo.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNCarrierInfo.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Click
RNCarrierInfo.xcodeproj
in the project navigator and go theBuild Settings
tab. Make sure 'All' is toggled on (instead of 'Basic'). Look forHeader Search Paths
and make sure it contains both$(SRCROOT)/../react-native/React
and$(SRCROOT)/../../React
- mark both asrecursive
. - Set up the project to run on your device (iOS simulator does not report cellular provider info)
- Run your project (
Cmd+R
)
- app/build.gradle
dependencies {
...
compile project(':react-native-carrier-info') <-- add this
...
}
- settings.gradle
include ':react-native-carrier-info'
project(':react-native-carrier-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-carrier-info/android')
- MainApplication.java
...
import com.ianlin.RNCarrierInfo.RNCarrierInfoPackage; <-- add this
...
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
...
newRNCarrierInfoPackage(), <-- add this
...
);
}
import CarrierInfo from 'react-native-carrier-info';
// inside your code where you would like to retrieve carrier info
CarrierInfo.allowsVOIP()
.then((result) => {
Alert.alert('Allows VoIP', JSON.stringify(result));
});
CarrierInfo.carrierName()
.then((result) => {
Alert.alert('Carrier Name', result);
});
CarrierInfo.isoCountryCode()
.then((result) => {
Alert.alert('ISO', result);
});
CarrierInfo.mobileCountryCode()
.then((result) => {
Alert.alert('MCC', result);
});
CarrierInfo.mobileNetworkCode()
.then((result) => {
Alert.alert('MNC', result);
});
CarrierInfo.mobileNetworkOperator()
.then((result) => {
Alert.alert('MCC + MNC', result);
});
There is an example project supplied with the repo in the RNCarrierInfoDemo folder. The sample app needs to be run on a device as the simulator does not report cellular provider info.
Any pull requests, issue reports and suggestion are highly welcome.
ISC License (functionality equivalent to MIT License)