Android10获取不了deviceId解决方案

使用wlan mac地址作为设备唯一标识,wlan mac可以理解为无线网卡的id,硬件烧录好的,不可更改,唯一

  1. Android版本 >= Android10
    // 添加权限
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission Android:name="android.permission.ACCESS_NETWORK_STATE" />

    // 无线网开关必须打开,不一定连接wifi
    // 先判wifi是否打开
     if (isWifiOpened() == true) { //如果已经打开
      String macAddress =  PackageUtil.getMacAddress();        
     } else {
       // 提示wifi没打开                    
     }

    private boolean isWifiOpened() {
        WifiManager wifiManager = (WifiManager)       
        getApplicationContext().getSystemService(Context.WIFI_SERVICE);
        return wifiManager.isWifiEnabled();
    }
  1. Android版本 < Android10, (Android 7,8,9用虚拟机验证的)
// 添加权限
 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
 <uses-permission Android:name="android.permission.ACCESS_NETWORK_STATE" />
  // 无线网开关不用打开 
   String macAddress =  PackageUtil.getMacAddress();    

官方给出的解决方案

UUID解决方案

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。