React-Native 獲取設(shè)備信息, Android獲取IEMI碼

簡單介紹

獲取設(shè)備信息, 使用的是 react-native-device-info
獲取IMEI碼參考了react-native-imei源碼

關(guān)于引入上面的依賴, 鏈接中都有說明,
算了還是說一遍吧:

**注意: ** 這里只說 Android 的配置步驟, IOS請去鏈接中查看

1: 獲取設(shè)備信息 react-native-device-info (不包括IMEI)
  • 1: 安裝依賴:
npm install --save react-native-device-info 
  • 2: 配置文件:
    • 1:在文件 android/app/build.gradle:
      dependencies {
        ...
           compile "com.facebook.react:react-native:+"  // From node_modules
         +   compile project(':react-native-device-info')
      

    }

    - 2: 在文件 `in android/settings.gradle:`
    
    ...
    include ':app'
    + include ':react-native-device-info'
    
    • project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
    - 3: 在文件 `android/app/src/main/java/com/XXX(項(xiàng)目名稱)/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()
      );
      
      }

    ......
    }

    
    - 4: 如果你想獲取設(shè)備的名字: 在 文件: `android/app/src/main/AndroidManifest.xml`
    
    ...
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    
    
    
    
  • 3: 配置完成,運(yùn)行

1: 從新 react-native run-android 你的項(xiàng)目, 也許會有點(diǎn)慢,
如果報(bào)錯為: can not deleted ............., 請重新運(yùn)行幾次 react-native run-android

  • 4: 使用方法:
var DeviceInfo = require('react-native-device-info');
</Text>: {DeviceInfo.getUniqueID()} </Text>
</Text> :{DeviceInfo.getInstanceID()}</Text>

其他方法見 react-native-device-info

獲取后的設(shè)備信息
2: react-native-imei 獲取手機(jī)IMEI碼
  • 1: 安裝依賴:
     npm install --save react-native-imei
    
  • 2: 配置文件
    • 在文件 android/app/src/main/AndroidManifest.xml
      <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    
  • 3: 自動配置:
      react-native link react-native-imei
    
  • 4: 使用:
import { NativeModules, Text, View,} from 'react-native';

export default class TestDeviceInfo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      IMEI: '未獲取',
    }
  }

  // 由于是異步獲取 , 這里使用 async  ... await更改為同步, 不然獲取始終為underfind
  async getIMEI() {
    let IMEI =  await NativeModules.IMEI.getIMEI()
    this.setState({
      IMEI: IMEI,
    })
  }

  componentDidMount() {
    this.getIMEI()
  }
  render() {
      return (
        <View>
              <Text style={styles.instructions}>
                <Text style={{color: '#0366d6'}}> 'IMEI(IMEI碼)'</Text>: {this.state.IMEI}
              </Text>
        </View>
      );
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評論 25 709
  • React Native優(yōu)秀博客,以及優(yōu)秀的Github庫列表(很多英文資料源自于[awesome-react-n...
    董董董董董董董董董大笨蛋閱讀 11,013評論 4 162
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,330評論 0 17
  • 說實(shí)話,現(xiàn)在的我,如果不參加比賽我真的不知道我該做什么。 不是為了掌聲和鮮花,而是想證明自己存在過。
    楊有為閱讀 236評論 0 0
  • 前幾天是處于正面的學(xué)習(xí)行為中,在有所得的情況下,求知欲竟一發(fā)不可收拾,但一旦進(jìn)入了后退期,卻是終日渾渾噩噩,不知所...
    東洺閱讀 560評論 0 0

友情鏈接更多精彩內(nèi)容