皮皮网

【牙科管理 源码】【网站源码能用几年】【全开源系统源码】getdeviceid源码

来源:简单马丁源码 时间:2024-11-23 12:19:40

1.android如何获得uuid
2.如何获取android设备唯一识别码

getdeviceid源码

android如何获得uuid

       æ‰€æœ‰çš„设备都可以返回一个 TelephonyManager.getDeviceId()

        所有的GSM设备 (测试设备都装载有SIM卡) 可以返回一个 TelephonyManager.getSimSerialNumber()

       æ‰€æœ‰æ·»åŠ æœ‰è°·æ­Œè´¦æˆ·çš„设备可以返回一个 ANDROID_ID

       æ‰€æœ‰çš„CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添加了谷歌账户)

       æ‰€ä»¥å¦‚果你想得到设备的唯一序号, TelephonyManager.getDeviceId() 。

       ä»£ç å¦‚下:

       final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);

        final String tmDevice,牙科管理 源码 tmSerial, tmPhone, androidId;

        tmDevice = "" + tm.getDeviceId();

        tmSerial = "" + tm.getSimSerialNumber();

        androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);

        UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << ) | tmSerial.hashCode());

        String uniqueId = deviceUuid.toString();

       æœ€åŽçš„deviceID可能是这样的结果: -b3-e7c7--bffd

如何获取android设备唯一识别码

       DEVICE_ID

       è¿™æ˜¯Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。

       è¿™ä¸ªDEVICE_ID可以同通过下面的方法获取:

       TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String DEVICE_ID = tm.getDeviceId();

       å®ƒä¼šæ ¹æ®ä¸åŒçš„手机设备返回IMEI,MEID或者ESN码,但在使用的过程中有以下问题:

       éžæ‰‹æœºè®¾å¤‡ï¼šæœ€å¼€å§‹æ­è½½Android系统都手机设备,而现在也出现了非手机设备:如平板电脑、电子书、电视、音乐播放器等。这些设备没有通话的硬件功能,系统中也就没有TELEPHONY_SERVICE,自然也就无法通过上面的方法获得DEVICE_ID。

       æƒé™é—®é¢˜ï¼šèŽ·å–DEVICE_ID需要READ_PHONE_STATE权限,如果只是为了获取DEVICE_ID而没有用到其他的通话功能,申请这个权限一来大才小用,二来部分用户会怀疑软件的安全性。

       åŽ‚商定制系统中的Bug:少数手机设备上,由于该实现有漏洞,会返回垃圾,如:zeros或者asterisks

       MAC ADDRESS

       å¯ä»¥ä½¿ç”¨æ‰‹æœºWifi或蓝牙的MAC地址作为设备标识,但是并不推荐这么做,原因有以下两点:

       ç¡¬ä»¶é™åˆ¶ï¼šå¹¶ä¸æ˜¯æ‰€æœ‰çš„设备都有Wifi和蓝牙硬件,硬件不存在自然也就得不到这一信息。

       èŽ·å–的限制:如果Wifi没有打开过,是无法获取其Mac地址的;而蓝牙是只有在打开的时候才能获取到其Mac地址。

       èŽ·å–Wifi Mac地址:

       èŽ·å–蓝牙 Mac地址:

       Sim Serial Number

       è£…有SIM卡的设备,可以通过下面的方法获取到Sim Serial Number:

       TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String SimSerialNumber = tm.getSimSerialNumber();

       æ³¨æ„ï¼šå¯¹äºŽCDMA设备,返回的是一个空值!

       ANDROID_ID

       åœ¨è®¾å¤‡é¦–次启动时,系统会随机生成一个位的数字,并把这个数字以进制字符串的形式保存下来,这个进制的字符串就是ANDROID_ID,当设备被wipe后该值会被重置。可以通过下面的方法获取:

       import android.provider.Settings; String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.System.ANDROID_ID);

       ANDROID_ID可以作为设备标识,但需要注意:

       åŽ‚商定制系统的Bug:不同的设备可能会产生相同的ANDROID_ID:ddec。

       åŽ‚商定制系统的Bug:有些设备返回的值为null。

       è®¾å¤‡å·®å¼‚:对于CDMA设备,ANDROID_ID和TelephonyManager.getDeviceId() 返回相同的值。

       Serial Number

       Android系统2.3版本以上可以通过下面的方法得到Serial Number,且非手机设备也可以通过该接口获取。

       String SerialNumber = android.os.Build.SERIAL;