react-native-device-info
Device Information for React Native.
TOC
Installation
Using npm:
npm install --save react-native-device-info
or using yarn:
yarn add react-native-device-info
⚠️ If you are on React Native > 0.47, you must use version 0.11.0 of this library or higher
Linking
Automatic
react-native link react-native-device-info
(or using rnpm
for versions of React Native < 0.27)
rnpm link react-native-device-info
Manual
iOS (via Cocoa Pods)
Add the following line to your build targets in your Podfile
pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
Then run pod install
iOS (without Cocoa Pods)
In XCode, in the project navigator:
- Right click Libraries
- Add Files to [your project's name]
- Go to
node_modules/react-native-device-info
- Add the
.xcodeproj
file
In XCode, in the project navigator, select your project.
- Add the
libRNDeviceInfo.a
from the deviceinfo project to your project's Build Phases ➜ Link Binary With Libraries - Click
.xcodeproj
file you added before in the project navigator and go the Build Settings tab. Make sure All is toggled on (instead of Basic). - Look for Header Search Paths and make sure it contains both
$(SRCROOT)/../react-native/React
and $(SRCROOT)/../../React
- Mark both as recursive (should be OK by default).
Run your project (Cmd+R)
(Thanks to @brysgo for writing the instructions)
Android
- in
android/app/build.gradle
:
dependencies {
...
compile "com.facebook.react:react-native:+" // From node_modules
+ compile project(':react-native-device-info')
}
- in
android/settings.gradle
:
...
include ':app'
+ include ':react-native-device-info'
+ project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
With React Native 0.29+
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;
public class MainApplication extends Application implements ReactApplication {
//......
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
+ new RNDeviceInfo(),
new MainReactPackage()
);
}
......
}
With older versions of React Native:
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;
public class MainActivity extends ReactActivity {
......
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
+ new RNDeviceInfo(),
new MainReactPackage()
);
}
}
(Thanks to @chirag04 for writing the instructions)
Windows
- Open the solution in Visual Studio for your Windows apps
- right click your in the Explorer and click Add > Existing Project...
- Navigate to
./<app-name>/node_modules/react-native-device-info/windows/RNDeviceInfo
and add RNDeviceInfo.csproj
- this time right click on your React Native Windows app under your solutions directory and click Add > Reference...
- check the
RNDeviceInfo
you just added and press ok - open up
MainPage.cs
for your app and edit the file like so:
+ using RNDeviceInfo;
......
get
{
return new List<IReactPackage>
{
new MainReactPackage(),
+ new RNDeviceInfoPackage(),
};
}
(Thanks to @josephan for writing the instructions)
Usage
var DeviceInfo = require('react-native-device-info');
API
getAPILevel()
Gets the API level.
Examples
const apiLevel = DeviceInfo.getAPILevel();
Notes
See API Levels
getApplicationName()
Gets the application name.
Examples
const appName = DeviceInfo.getApplicationName();
getBrand()
Gets the device brand.
Examples
const brand = DeviceInfo.getBrand();
getBuildNumber()
Gets the application build number.
Examples
const buildNumber = DeviceInfo.getBuildNumber();
Notes
There is a type inconsistency: Android return an integer instead of the documented string.
getBundleId()
Gets the application bundle identifier.
Examples
const bundleId = DeviceInfo.getBundleId();
getCarrier()
Gets the carrier name (network operator).
Examples
const carrier = DeviceInfo.getCarrier();
getDeviceCountry()
Gets the device country based on the locale information.
Examples
const deviceCountry = DeviceInfo.getDeviceCountry();
getDeviceId()
Gets the device ID.
Examples
const deviceId = DeviceInfo.getDeviceId();
getDeviceLocale()
Gets the device locale.
Examples
const deviceLocale = DeviceInfo.getDeviceLocale();
getDeviceName()
Gets the device name.
Examples
const deviceName = DeviceInfo.getDeviceName();
Android Permissions
getFirstInstallTime()
Gets the time at which the app was first installed, in milliseconds.
Examples
const firstInstallTime = DeviceInfo.getFirstInstallTime();
getFontScale()
Gets the device font scale.
The font scale is the ratio of the current system font to the "normal" font size, so if normal text is 10pt and the system font is currently 15pt, the font scale would be 1.5
This can be used to determine if accessability settings has been changed for the device; you may want to re-layout certain views if the font scale is significantly larger ( > 2.0 )
Examples
const fontScale = DeviceInfo.getFontScale();
getFreeDiskStorage()
Gets available storage size, in bytes.
Examples
const freeDiskStorage = DeviceInfo.getFreeDiskStorage();
Notes
Android: Returns only available external storage size, not including internal.
getIPAddress()
Gets the device current IP address.
Examples
DeviceInfo.getIPAddress().then(ip => {
});
Android Permissions
getInstanceID()
Gets the application instance ID.
Examples
const instanceId = DeviceInfo.getInstanceID();
Notes
See https://developers.google.com/instance-id/
getLastUpdateTime()
Gets the time at which the app was last updated, in milliseconds.
Examples
const lastUpdateTime = DeviceInfo.getLastUpdateTime();
getMACAddress()
Gets the network adapter MAC address.
Examples
DeviceInfo.getMACAddress().then(mac => {
});
Android Permissions
getManufacturer()
Gets the device manufacturer.
Examples
const manufacturer = DeviceInfo.getManufacturer();
getMaxMemory()
Returns the maximum amount of memory that the JVM will attempt to use, in bytes.
Examples
const maxMemory = DeviceInfo.getMaxMemory();
getModel()
Gets the device model.
Examples
const model = DeviceInfo.getModel();
getPhoneNumber()
Gets the device phone number.
Examples
const phoneNumber = DeviceInfo.getPhoneNumber();
Android Permissions
getReadableVersion()
Gets the application human readable version.
Examples
const readableVersion = DeviceInfo.getReadableVersion();
getSerialNumber()
Gets the device serial number.
Examples
const serialNumber = DeviceInfo.getSerialNumber();
getSystemName()
Gets the device OS name.
Examples
const systemName = DeviceInfo.getSystemName();
getSystemVersion()
Gets the device OS version.
Examples
const systemVersion = DeviceInfo.getSystemVersion();
getTimezone()
Gets the device default timezone.
Examples
const timezone = DeviceInfo.getTimezone();
getTotalDiskCapacity()
Gets full disk storage size, in bytes.
Examples
const storageSize = DeviceInfo.getTotalDiskCapacity();
getTotalMemory()
Gets the device total memory, in bytes.
Examples
const totalMemory = DeviceInfo.getTotalMemory();
getUniqueID()
Gets the device unique ID.
Examples
const uniqueId = DeviceInfo.getUniqueID();
Notes
This is IDFV on iOS so it will change if all apps from the current apps vendor have been previously uninstalled.
getUserAgent()
Gets the device User Agent.
Examples
const userAgent = DeviceInfo.getUserAgent();
getVersion()
Gets the application version.
Examples
const version = DeviceInfo.getVersion();
is24Hour()
Tells if the user preference is set to 24-hour format.
Examples
const is24Hour = DeviceInfo.is24Hour();
isEmulator()
Tells if the application is running in an emulator.
Examples
const isEmulator = DeviceInfo.isEmulator();
isPinOrFingerprintSet()
Tells if a PIN number or a fingerprint was set for the device.
Examples
DeviceInfo.isPinOrFingerprintSet()(isPinOrFingerprintSet => {
if (!isPinOrFingerprintSet) {
...
}
}
Notes
- Since the device setting for PIN/Fingerprint can be modified while the app is still open, this is available via callback instead of as a constant.
- iOS: Not supported for iOS < 9
isTablet()
Tells if the device is a tablet.
Examples
const isTablet = DeviceInfo.isTablet();
Release Notes
See the CHANGELOG.md.