Как получить Id устройства в реакции родного андроида?
Я пытаюсь получить идентификатор устройства от устройства Android. Есть несколько ссылок и пакетов, доступных для получения идентификатора устройства, но в случае Android их очень мало. Ниже приведены ссылки, которые я пробовал уже безрезультатно:
Ссылка 1: https://github.com/rebeccahughes/react-native-device-info Я пробовал эту ссылку безуспешно, она может нормально работать на ios, но на Android она показывает ошибку при выполнении упомянутой команды на ссылке github "реагировать -native link response-native-device-info "Ошибка: ссылка не распознана
Ссылка 2: https://github.com/lazywei/react-native-device-uuid него есть решение только для IOS
Я застрял здесь. Я не понимаю, как я решу эту проблему? Пожалуйста помоги?
заранее спасибо
3 ответа
Вы не указали реагировать на родной номер версии.
Я использовал тот же пакет response-native-device-info.
Я пробовал со следующими версиями, и у меня это сработало.
"react": "16.0.0",
"react-native": "0.50.4",
"react-native-device-info": "^0.12.1",
Я установил его с помощью команды:
npm install --save react-native-device-info
Затем я связываю это с командой:
react-native link react-native-device-info
Если вы столкнулись с какой-либо проблемой при связывании пакета, то вы можете сделать ручную ссылку или вы можете перепроверить, что пакеты успешно связаны или нет.
- в android/app/build.gradle:
dependencies { ... compile "com.facebook.react:react-native:+" // From node_modules + compile project(':react-native-device-info') }
- в андроиде / settings.gradle:
...
включить ': приложение'
включает ': response-native-device-info'
проект (':response-native-device-info').projectDir = новый файл (rootProject.projectDir, '../node_modules/react-native-device-info/android')
- в 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() ); } ...... }
права доступа
Добавьте соответствующие необязательные разрешения для вашего AndroidManifest.xml:
...
<uses-permission android:name="android.permission.BLUETOOTH"/> <!-- for Device Name -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- for Phone Number -->
пример
var DeviceInfo = require('react-native-device-info');
// or import DeviceInfo from 'react-native-device-info';
var deviceId = DeviceInfo.getUniqueID();
Вы можете использовать вышеуказанный идентификатор устройства.
Вы можете установить этот пакет: https://github.com/rebeccahughes/react-native-device-info
А потом используй
import DeviceInfo from 'react-native-device-info';
const uniqueId = DeviceInfo.getUniqueID();
На самом деле идентификатор устройства push-уведомлений (в сочетании с пользовательским устройством и именем вашего пакета) генерируется и отправляется на устройство с помощью gCM-сервера google. Сначала необходимо понять концепцию GCM, а затем попробовать.
тогда попробуйте некоторые реактивные плагины вроде и ссылку