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
trueon 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/iosand addRNCarrierInfo.xcodeproj - In XCode, in the project navigator, select your project. Add
libRNCarrierInfo.ato your project'sBuild Phases➜Link Binary With Libraries - Click
RNCarrierInfo.xcodeprojin the project navigator and go theBuild Settingstab. Make sure 'All' is toggled on (instead of 'Basic'). Look forHeader Search Pathsand make sure it contains both$(SRCROOT)/../react-native/Reactand$(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(),
...
new RNCarrierInfoPackage(), <-- 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.
ISC License (functionality equivalent to MIT License)