我正在尝试从Android设备获取设备ID。有几个链接和包可用于获取设备ID,但在Android的情况下很少可用。以下是我已经尝试过但没有结果的链接:
Link1:https://github.com/rebeccahughes/react-native-device-info 我试过这个链接没有成功它可能在ios上正常运行但是在Android上它显示我在github链接上运行所提到的命令时的错误" react-native link react-native-device-info" 错误:链接无法识别
Link2:https://github.com/lazywei/react-native-device-uuid 它只有IOS的解决方案
我被困在这里。我不知道我将如何解决这个问题?请帮帮忙?
提前致谢
答案 0 :(得分:6)
您未指定反应原生版本号。
我使用了相同的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
如果您在链接包时遇到任何问题,那么您可以进行手动链接,也可以交叉检查包是否成功链接。
dependencies { ... compile "com.facebook.react:react-native:+" // From node_modules + compile project(':react-native-device-info') }
...
包括':app'
包括':react-native-device-info'
项目(':react-native-device-info')。projectDir = new File(rootProject.projectDir, ' ../ node_modules /反应天然器件用方式/机器人&#39)
+ 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。
答案 1 :(得分:1)
您可以安装此软件包:https://github.com/rebeccahughes/react-native-device-info
然后使用它
import DeviceInfo from 'react-native-device-info';
const uniqueId = DeviceInfo.getUniqueID();
答案 2 :(得分:0)
实际推送通知设备ID(与用户设备和您的包名称相结合)生成并通过谷歌GCM服务器发送到设备。您必须首先了解GCM概念然后尝试..