gpt4 book ai didi

android - 在 React Native 中获取设备 ID?

转载 作者:可可西里 更新时间:2023-11-01 03:27:07 24 4
gpt4 key购买 nike

如何在 React Native 中获取设备 ID。我使用的是 create react native 而不是 android studio。我对此很陌生。

import DeviceInfo from 'react-native-device-info';

constructor(props) {
super(props);
this.state = { id: '' }
this.onNavigateTo = this.onNavigateTo.bind(this);
}
componentDidMount() {
this.setState({id: DeviceInfo.getUniqueID()}, () =>
alert(this.state.id));
}
render() {
return (
<Text>{this.state.id}</Text>
);
}

错误:undefined 不是一个对象(评估'RNDevice.uniqueId')

注意:- 我没有使用 run-android 或 run-ios

我正在使用 Create-react-native app 和 yarn start。输出将通过 Expo 应用程序在设备上

最佳答案

您可以使用 react-native CLI 创建一个项目,而不是 expo。

使用命令创建一个新项目:

react-native init Myproject

cd Myproject

使用以下命令运行项目:

react-native run-android

然后你可以使用 react-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

如果您在链接包时遇到任何问题,那么您可以进行手动链接,或者您可以交叉检查包是否成功链接。

  1. 在 android/app/build.gradle 中:
 dependencies {
...
compile "com.facebook.react:react-native:+" // From node_modules
+ compile project(':react-native-device-info')
}
  1. 在 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')

  1. 在 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();

你可以使用上面的deviceId。

关于android - 在 React Native 中获取设备 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46452529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com