react-native-device-info
Device Information for React Native
Install
npm install --save react-native-device-info
< 0.46
npm install --save react-native-device-info-fork@0.9.6
Automatically link
With React Native 0.27+
react-native link react-native-device-info
With older versions of React Native
You need rnpm
(npm install -g rnpm
)
rnpm link react-native-device-info
Manually link
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+
- in
MainApplication.java
:
+ 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:
- in
MainActivity.java
:
+ 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)
Device Name
If you want to get the device name in Android add this to your AndroidManifest.xml
(optional):
...
Release Notes
See CHANGELOG.md
Example
var DeviceInfo = ; console; // e.g. FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9// * note this is IDFV on iOS so it will change if all apps from the current apps vendor have been previously uninstalled console; // e.g. Apple console; // e.g. Apple / htc / Xiaomi console; // e.g. iPhone 6 console; // e.g. iPhone7,2 / or the board on Android e.g. goldfish console; // e.g. iPhone OS console; // e.g. 9.0 console; // e.g. com.learnium.mobile console; // e.g. 89 console; // e.g. 1.1.0 console; // e.g. 1.1.0.89 console; // e.g. Becca's iPhone 6 console; // e.g. Dalvik/2.1.0 (Linux; U; Android 5.1; Google Nexus 4 - 5.1.0 - API 22 - 768x1280 Build/LMY47D) console; // e.g en-US console; // e.g US console; // e.g America/Mexico_City console; // ANDROID ONLY - see https://developers.google.com/instance-id/ console; // e.g 34:4D:F7:95:49:20 console; // iOS ONLY console; // ANDROID ONLY