如何获取设备ID in react native android?

YAM*_*YAM 4 android reactjs android-developer-api react-native react-android

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

Link1: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的解决方案

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

提前致谢

小智 8

您未指定反应本机版本号.

我使用了相同的react-native-device-info包.

我试过以下版本,它对我有用.

  "react": "16.0.0",
  "react-native": "0.50.4",
  "react-native-device-info": "^0.12.1",
Run Code Online (Sandbox Code Playgroud)

我用命令安装它:

npm install --save react-native-device-info
Run Code Online (Sandbox Code Playgroud)

然后我用命令链接它:

react-native link react-native-device-info
Run Code Online (Sandbox Code Playgroud)

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

  1. 在android/app/build.gradle中:
 dependencies {
        ...
        compile "com.facebook.react:react-native:+"  // From node_modules
    +   compile project(':react-native-device-info')
    }
Run Code Online (Sandbox Code Playgroud)
  1. 在android/settings.gradle中:

...

包括':app'

包括':react-native-device-info'

project(':react-native-device-info').projectDir = new File(rootProject.projectDir,'../node_modules/replace-term-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()
      );
    }

    ......
  }
Run Code Online (Sandbox Code Playgroud)

权限

为AndroidManifest.xml添加适当的可选权限:

...
<uses-permission android:name="android.permission.BLUETOOTH"/>         <!-- for Device Name -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>  <!-- for Phone Number -->
Run Code Online (Sandbox Code Playgroud)

var DeviceInfo = require('react-native-device-info');
// or import DeviceInfo from 'react-native-device-info';

var deviceId = DeviceInfo.getUniqueID();
Run Code Online (Sandbox Code Playgroud)

你可以使用上面的deviceId.


sha*_* sk 0

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

谷歌 GCM 文档

然后尝试一些反应本机插件例如链接