7

我正在尝试从 android 设备获取设备 ID。有几个链接和包可用于获取设备 ID,但在 Android 的情况下可用的很少。以下是我已经尝试过但没有结果的链接:

链接1 :https ://github.com/rebeccahughes/react-native-device-info 我试过这个链接没有成功它可能在ios上运行良好但在Android上它在github链接上运行提到的命令时显示错误链接“反应-native link react-native-device-info" 错误:无法识别链接

Link2:https ://github.com/lazywei/react-native-device-uuid 仅适用于IOS

我被困在这里。我不知道我将如何解决这个问题?请帮忙?

提前致谢

4

3 回答 3

9

您没有指定反应本机版本号。

我使用了相同的 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 中:

...

包括':应用程序'

包括 ':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。

于 2017-11-28T09:00:08.797 回答
3

你可以安装这个包:https ://github.com/rebeccahughes/react-native-device-info

然后使用它

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

const uniqueId = DeviceInfo.getUniqueID();
于 2018-09-23T06:30:09.833 回答
0

实际上推送通知设备ID(结合用户设备和您的包名称)由谷歌GCM服务器生成并发送到设备。您必须先了解GCM概念然后尝试..

谷歌 GCM 文档

然后尝试一些 react-native 插件,例如链接

于 2016-06-13T05:51:52.327 回答