|  |  |  | 
|---|
|  |  |  | import android.view.View; | 
|---|
|  |  |  | import android.widget.Toast; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.dayu.baselibrary.utils.DeviceUtils; | 
|---|
|  |  |  | import com.dayu.baselibrary.utils.TipUtil; | 
|---|
|  |  |  | import com.dayu.baselibrary.view.PassWordDialog; | 
|---|
|  |  |  | import com.dayu.henanlibrary.HeNanApplication; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 生成 1 到 12 之间的随机数字 | 
|---|
|  |  |  | int randomNumber = random.nextInt(12) + 1; | 
|---|
|  |  |  | AdminDataBean adminDataBean = new AdminDataBean(); | 
|---|
|  |  |  | adminDataBean.setSerial(randomNumber + generateUniqueNumber(getSN())); | 
|---|
|  |  |  | adminDataBean.setSerial(randomNumber + generateUniqueNumber(DeviceUtils.getSN())); | 
|---|
|  |  |  | baseDao.adminDao().insert(adminDataBean); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @SuppressLint("MissingPermission") | 
|---|
|  |  |  | public static String getSN() { | 
|---|
|  |  |  | String serial = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Class<?> c = Class.forName("android.os.SystemProperties"); | 
|---|
|  |  |  | Method get = c.getMethod("get", String.class); | 
|---|
|  |  |  | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | serial = (String) get.invoke(c, "ro.sunmi.serial"); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return serial; | 
|---|
|  |  |  | } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { | 
|---|
|  |  |  | serial = Build.getSerial(); | 
|---|
|  |  |  | return serial; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //安卓8以下使用Build.SERIAL相同方式 | 
|---|
|  |  |  | //return Build.SERIAL; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | serial = (String) get.invoke(c, "ro.serialno"); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return serial; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (ClassNotFoundException e) { | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } catch (NoSuchMethodException e) { | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|