Android 에서 유일한 기계 코드 가 져 오기

1713 단어 androidstudio
주소:http://blog.csdn.net/laohuang1122/article/details/12293377
응용 을 할 때 모든 장치 의 기계 코드 를 가 져 와 야 하 는 경우 가 많다.
또는 모든 장 치 는 Telephony Manager. getDeviceId () 의 모든 GSM 장 치 를 되 돌려 줍 니 다. Telephony Manager. getSimSerialNumber () 의 모든 CDMA 장 치 는 getSimSerialNumber () 에 대해 빈 값 을 되 돌려 줍 니 다!구 글 계 정 이 추 가 된 모든 장 치 는 ANDROID 를 되 돌려 줍 니 다.ID 모든 CDMA 장치 가 ANDROIDID 와 Telephony Manager. getDeviceId () 는 같은 값 으로 되 돌려 줍 니 다 (설정 할 때 구 글 계 정 만 추가 하면)  정상 적 인 상황 에서 장치 의 유일한 번 호 를 얻 으 려 면 Telephony Manager. getDeviceId () 만으로 도 충분 합 니 다.하지만 DeviceID 가 노출 될 수 있 으 니 이 id 를 암호 화 하 는 것 이 좋 습 니 다.암호 화 된 번 호 는 이 장 치 를 유일 하 게 식별 할 수 있 습 니 다. 예 를 들 어 String. hashCode () 를 사용 하여 UUID 와 결합 합 니 다.
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() << 32) | tmSerial.hashCode());
String uniqueId = deviceUuid.toString();

마지막 deviceID 는 다음 과 같은 결과 일 수 있 습 니 다: 000000 - 54b3 - e7c7 - 0000 - 00046bffd 97
 
권한 을 추가 하 세 요:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

좋은 웹페이지 즐겨찾기