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

时间:2016-06-13 05:34:35

标签: android reactjs react-native android-developer-api react-android

我正在尝试从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的解决方案

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

提前致谢

3 个答案:

答案 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

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

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

      ...

           

      包括':app'

           

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

           

      项目(':react-native-device-info')。projectDir = new File(rootProject.projectDir,   ' ../ node_modules /反应天然器件用方式/机器人&#39)

        MainApplication.java中的
      1. + 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概念然后尝试..

GOOGLE GCM DOC

然后尝试一些react-native插件likelink