This library可让您获取Android设备的唯一设备ID / Mac地址,重新安装后无法更改。
每次重新安装后 Expo.Constants.deviceId
都会更改(即使应用版本号相同)。
有没有办法获得Android的唯一ID,重新安装后不会更改(至少如果它是相同的版本),而不会弹出?
答案 0 :(得分:2)
对于 Expo IOS 目前的选择非常有限,因为 Apple 禁止获取私人设备信息。我们需要在下面创建我们自己的唯一标识符。
我的解决方案是结合 uuid 和 Expo SecureStore 适用于 IOS 和 Android。
import * as SecureStore from 'expo-secure-store';
import 'react-native-get-random-values';
import { v4 as uuidv4 } from 'uuid';
let uuid = uuidv4();
await SecureStore.setItemAsync('secure_deviceid', JSON.stringify(uuid));
let fetchUUID = await SecureStore.getItemAsync('secure_deviceid');
console.log(fetchUUID)
即使应用重新安装,或者用户切换设备并将所有数据复制到新设备,此解决方案也能正常工作。
(Expo.Constants.deviceId
已弃用,将在 SDK 44 中删除)
答案 1 :(得分:1)
只需使用 react-native-device-info 中的 getuniqueid() 方法。适用于 iOS 和 android 以唯一标识设备。
答案 2 :(得分:-1)
猜猜您可以为此目的使用facebook模块。 https://docs.expo.io/versions/latest/sdk/facebook-ads/#currentdevicehash
不确定到底发生了什么-但是看起来在重新安装应用程序,重新启动设备等过程中是唯一的。