手机识别码

news/2024/12/5 6:32:10/

简介

IMEI

IMEI(International Mobile Equipment Identity),国际移动设备身份码缩写,国际移动装备辨识码,15位数。它与每台移动电话机一一对应且全世界唯一。每移动电话机组装后都被赋予一全球唯一号码,该号码从生产到交付使用都将被制造生产厂商记录。

IMSI

国际移动用户识别码(IMSI:International Mobile Subscriber Identification 
Number),区别移动用户有效信息,储存于SIM卡。总长不超15位,同样用0~9数字。其中MCC是移动用户所属国家代号,占3位,中国MCC规定460;MNC是移动网号码,两或三位数组成,中国移动的移动网络编码(MNC)00,识别移动用户所属移动通信网;MSIN是移动用户识别码,识别某移动通信网中移动用户。

MAC

MAC(Media Access ControlMedium Access Control)地址,意译媒体访问控制,或称物理地址、硬件地址,定义网络设备位置。OSI模型第三层网络层负责IP地址,第二层数据链路层负责MAC地址。一主机有一MAC地址,而每网络位有一专属它IP地址 
注意:平板无法通IMEI标示设备,会将MAC地址作为用户唯一标识。

代码

MAC

package util;import android.annotation.SuppressLint;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.net.NetworkInterface;
import java.util.Collections;
import java.util.List;/*** Created on 2018/6/20.** @desc 手机Mac地址*/
public class MacUtils {private static final String DEFAULT_MAC = "02:00:00:00:00:00";private static final String FILE_MAC = "/sys/class/net/wlan0/address";/*** Mac(默02:00:00:00:00:00)** @param context 上下文* @return mac*/@SuppressLint("HardwareIds")public static String getMacByInterfaceOrFile(Context context) {WifiManager wifiMan = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInf = wifiMan != null ? wifiMan.getConnectionInfo() : null;if (wifiInf != null && DEFAULT_MAC.equals(wifiInf.getMacAddress())) {String result;try {result = getMacByInterface();if (result != null) {return result;} else {result = getMacByFile(wifiMan);return result;}} catch (IOException e) {LogUtils.e("Error getting mac");} catch (Exception e) {LogUtils.e("Error getting mac");}} else {if (wifiInf != null && wifiInf.getMacAddress() != null) {return wifiInf.getMacAddress();} else {return "";}}return DEFAULT_MAC;}private static String getMacByInterface() {try {List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());for (NetworkInterface nif : all) {if ("wlan0".equalsIgnoreCase(nif.getName())) {byte[] macBytes = nif.getHardwareAddress();if (macBytes == null) {return "";}StringBuilder res1 = new StringBuilder();for (byte b : macBytes) {res1.append(String.format("%02X:", b));}if (res1.length() > 0) {res1.deleteCharAt(res1.length() - 1);}return res1.toString();}}} catch (Exception e) {LogUtils.e("Error getting mac");}return null;}private static String getMacByFile(WifiManager wifiMan) throws Exception {String s;int wifiState = wifiMan.getWifiState();wifiMan.setWifiEnabled(true);File file = new File(FILE_MAC);FileInputStream fileInputStream = new FileInputStream(file);s = getStringFromStream(fileInputStream);fileInputStream.close();boolean enabled = WifiManager.WIFI_STATE_ENABLED == wifiState;wifiMan.setWifiEnabled(enabled);return s;}private static String getStringFromStream(InputStream inputStream) throws IOException {if (inputStream != null) {Writer writer = new StringWriter();char[] chars = new char[2048];try {Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));int counter;while ((counter = reader.read(chars)) != -1) {writer.write(chars, 0, counter);}} finally {inputStream.close();}return writer.toString();} else {return "No Contents";}}
}

http://www.ppmy.cn/news/699099.html

相关文章

关于手机唯一识别码的研究meid和imei

本来想获取手机唯一识别码时候&#xff0c;突然发现电信的识别码和其他制式的识别码是不同的。 IMSI国际移动用户识别码(IMSI International Mobile Subscriber Identification Number)国际上为唯一识别一个移动用户所分配的号码,是区别移动用户的标志&#xff0c;储存在SIM卡中…

Android 获取手机系统版本号、获取手机型号、获取手机厂商、获取手机IMEI、获取手机CPU_ABI、获取手机唯一识别码

1.先申请权限&#xff0c;关于如何申请权限请查看RxPermissions的使用&#xff08;简单实用&#xff09;_ErwinNakajima的博客-CSDN博客 2.手機唯一識別碼管理類。 package com.phone.common_library.manager;import android.Manifest; import android.content.Context; impo…

Android获取手机的设备识别码IMEI

这是刚刚实习用到设备识别码的时候带我的大哥给的&#xff0c;留下来以备不时之需。 import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; import android.support.v4.app.ActivityCompat; import android.telephony.Telep…

Android获取手机设备识别码(IMEI)和手机号码

最近看了下获取手机设备ID和手机信息以及SIM的信息例子&#xff0c;主要还是借鉴别人的&#xff0c;现在自己写一下&#xff0c;算是巩固加深了&#xff0c;也希望能给大家一个参考 必要的条件还是一部真机&#xff0c;SIM卡或者UIM卡。 首先&#xff0c;在AndroidMainfest.x…

2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程

Android篇 1 IMEI和MEID (1) IMEI (International Mobile Equipment Identity) 是国际移动设备身份码的缩写&#xff0c;国际移动装备辨识码&#xff0c;只有Android手机才获取的到&#xff0c;是由15位数字组成的"电子串号"&#xff0c;比如像这样 35988103031435…

获取手机唯一识别码IMEI

前言 获取IMEI相信大家非常熟悉&#xff0c;但是项目中使用时&#xff0c;发现当手机卡为电信的时候&#xff0c;获取的并不是IMEI&#xff0c;而是MEID&#xff0c;什么是MEID&#xff0c;为什么会出现这种情况呢&#xff1f; IMEI国际移动设备识别码&#xff08;IMEI&#xf…

手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)

文章目录 Android篇1 IMEI和MEID2 DeviceId3 mac地址4 ANDROID_ID5 UUID6 OpenUDID7 Serial Number8 IDFA9 GAID iOS篇1 IMEI2 IDFA3 mac地址4 UDID5 UUID6 如何正确的获取设备的唯一标识7 什么是钥匙串 Android篇 1 IMEI和MEID (1) IMEI (International Mobile Equipment Id…

HDLbits--Exams/review2015 fsm

示例&#xff1a; 题目的主要意思是&#xff1a;复位之后寻找1101序列&#xff0c;找到之后shift ena在四个周期内为1&#xff0c;此后输出counting&#xff0c;如果done-counting0&#xff0c;则counting一直为1&#xff0c;直到done-counting1&#xff0c;counting才为0&…