Solución:
En lugar de expo, puede crear un proyecto utilizando la CLI nativa de reacción.
Crea un nuevo proyecto usando el comando:
react-native init Myproject
cd Myproject
Ejecute el proyecto con el siguiente comando:
react-native run-android
Entonces puede usar el paquete react-native-device-info.
Probé con las siguientes versiones y funcionó para mí.
"react": "16.0.0",
"react-native": "0.50.4",
"react-native-device-info": "^0.12.1",
Lo instalé con el comando:
npm install --save react-native-device-info
Luego lo vinculo con el comando:
react-native link react-native-device-info
Si tiene algún problema al vincular el paquete, puede hacer el vínculo manual o puede verificar si los paquetes están vinculados correctamente o no.
- en android / app / build.gradle:
dependencies { ... compile "com.facebook.react:react-native:+" // From node_modules + compile project(':react-native-device-info') }
- en android / settings.gradle:
…
incluir ‘: aplicación’
incluir ‘: react-native-device-info’
proyecto (‘: react-native-device-info’). projectDir = new File (rootProject.projectDir, ‘../node_modules/react-native-device-info/android’)
- en 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() ); } ...... }
Permisos
Agregue los permisos opcionales apropiados a su AndroidManifest.xml:
...
<uses-permission android:name="android.permission.BLUETOOTH"/> <!-- for Device Name -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- for Phone Number -->
Ejemplo
var DeviceInfo = require('react-native-device-info');
// or import DeviceInfo from 'react-native-device-info';
var deviceId = DeviceInfo.getUniqueID();
puede utilizar el deviceId anterior.
Si está utilizando Expo, intente esto.
import Constants from 'expo-constants';
this.clientId = Constants.deviceId;
no puede usar la biblioteca que usa código nativo con expo, vea las advertencias si desea usar código nativo, debe crear su proyecto con código nativo en el documento de introducción básicamente
- instalar aplicaciones de solicitud previa (nodo – Java Development Kit – android studio – xcode – react native cli)
- ejecutar comando
react-native init MyProjectName
- cd la carpeta de su proyecto
cd MyProjectName
- correr
react-native run-android
oreact-native run-ios
si desea convertir un proyecto expo en un proyecto de código nativo, puede hacerlo ejecting-from-create-react-native-app
- instale el requisito de código nativo como arriba
- correr
npm run eject
después de eso, puede usar bibliotecas de terceros que usan código nativo y ejecutar react-native link