在 React Native 中获取 IMEI 号码
Posted
技术标签:
【中文标题】在 React Native 中获取 IMEI 号码【英文标题】:Get IMEI number in React Native 【发布时间】:2022-01-19 11:02:27 【问题描述】:我需要 IMEI 以在 React Native 应用程序中进行验证。使用 reactive-native-imei 包,这里是该包的链接:(https://github.com/SimenCodes/react-native-imei)。
在我的代码中,我收到以下错误:-
-
在我的代码中;
const GetImei = () =>
const IMEI = require('react-native-imei');
IMEI.getImei().then(imeiList =>
console.log(imeiList); // prints ["AABBBBBBCCCCCCD"]
);
在我的代码const IMEI = require('...react-native-imei');
的第二行中,它给了我 react-native-imei 的 'r' 下面的 3 个点,当我将鼠标悬停在它上面时,它说“找不到模块的声明文件-'react -native-imei'”,虽然我已经安装了包并链接了它,但我也检查了在节点模块中包仍然存在我也检查了 settings.gradle 文件包包含在那里所以可能是什么原因这个错误?请帮帮我。
-
我遇到的其他一些错误如下图所示:
【问题讨论】:
【参考方案1】:检查这个问题。它是在图书馆里长大的。
https://github.com/SimenCodes/react-native-imei/issues/22
如果您处于非常特殊的情况,您也可以在最新的 android 版本中使用这个库。 “只是”遵循 Android 的规则来获得额外的权限。从 2019 年开始的讨论中有一些提示,但你应该知道,从那时起,权限已重命名为 READ_PRECISE_PHONE_STATE。
还可以查看 android 文档。
https://developer.android.com/about/versions/10/privacy/changes?authuser=1#non-resettable-device-ids
【讨论】:
所以这意味着我们现在无法在 react-native 中访问 IMEI 号码?是这么说的吗? 没有。一旦我们拥有 READ_PRIVILEGED_PHONE_STATE 权限,我们将获得 IMEI 号码。这已经在上面的文档中解释过了。 因此,如果我将我实际上并不知道究竟是什么导致了您的应用程序中的错误,但我已经在您给定的库上构建了一个演示库,它工作正常。这是我的代码:
import React from 'react'
import StyleSheet,TouchableOpacity ,Text,View from 'react-native'
export default class Demo extends React.Component
constructor ()
super()
this.state =
deviceIMEI: '',
getIMEI = () =>
const IMEI = require('react-native-imei')
this.setState(
deviceIMEI: IMEI.getImei(),
)
render ()
return (
<View style=styles.container>
<Text>this.state.deviceIMEI</Text>
<TouchableOpacity onPress=this.getIMEI>
<Text>Get Current Device IMEI</Text>
</TouchableOpacity>
</View>
)
const styles = StyleSheet.create(
container:
flex: 1,
justifyContent: 'flex-start',
,
)
【讨论】:
“在该代码的第二行“const IMEI = require('...react-native-imei');”怎么样?它给了我反应的 'r' 下面的 3 个点-native-imei,当我将鼠标悬停在它上面时,它说“找不到模块的声明文件-'react-native-imei'”,虽然我已经安装了包并链接了它,但我也检查了节点-模块包仍然存在我已经检查了 settings.gradle 文件包包含在那里所以这个错误的原因可能是什么?” 我正在运行你的代码,现在它给了我一个错误:对象作为 React 子级无效(找到:带有键 _U、_V、_W、_X 的对象)。以上是关于在 React Native 中获取 IMEI 号码的主要内容,如果未能解决你的问题,请参考以下文章
Android 获取手机的厂商型号Android系统版本号IMEI当前系统语言等工具类
是否可以在 react native 中获取 apk 包名称和版本代码?