热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android获取wifi列表_如何获取设备唯一识别码IMEI和Mac地址

下面这个工具类提供了一些方法,可以获取设备AndroidID、IMEI、序列号、以及由他们组成的唯一识别码、网卡的MAC地址、蓝牙MAC地址。代码如下:
83d4993747464aa67dcb11d5a5a23d80.png

下面这个工具类提供了一些方法,可以获取设备AndroidID、IMEI、序列号、以及由他们组成的唯一识别码、网卡的MAC地址、蓝牙MAC地址。代码如下:

DeviceInfoUtil:

package com.home;

import java.util.UUID;

import android.bluetooth.BluetoothAdapter;

import android.content.Context;

import android.content.Intent;

import android.net.wifi.WifiInfo;

import android.net.wifi.WifiManager;

import android.provider.Settings.Secure;

import android.telephony.TelephonyManager;

public class DeviceInfoUtil {

/**

* 得到设备AndroidID,需要设备添加 Google账户

*

* @param context

* @return

*/

public static String getAndroidID(Context context) {

String androidID = Secure.getString(context.getContentResolver(),

Secure.ANDROID_ID);

return androidID;

}

/**

* 得到设备IMEI值

*

* @param context

* @return

*/

public static String getIMEI(Context context) {

TelephonyManager tm = (TelephonyManager) context

.getSystemService(Context.TELEPHONY_SERVICE);

return tm.getDeviceId();

}

/**

* 得到设备序列号

*

* @param context

* @return

*/

public static String getSimSerialNumber(Context context) {

TelephonyManager tm = (TelephonyManager) context

.getSystemService(Context.TELEPHONY_SERVICE);

return tm.getSimSerialNumber();

}

/**

* 得到设备唯一识别码

*

* @param context

* @return

*/

public static String getUniqueNumber(Context context) {

String androidID = getAndroidID(context);

String imei = getIMEI(context);

String simSerialNumber = getSimSerialNumber(context);

UUID uuid = new UUID(androidID.hashCode(),

((long) imei.hashCode() <<32) | simSerialNumber.hashCode());

return uuid.toString();

}

/**

* 获取设备本身网卡的MAC地址

*

* &#64;param context

* &#64;return

*/

public static String getWLANMACAddress(Context context) {

String macAddress &#61; "";

WifiManager wm &#61; (WifiManager) context

.getSystemService(Context.WIFI_SERVICE);

WifiInfo info &#61; wm.getConnectionInfo();

if (info !&#61; null) {

macAddress &#61; info.getMacAddress();

} else {

macAddress &#61; "No Wifi Device";

}

return macAddress;

}

/**

* 获取蓝牙MAC地址

*

* &#64;param context

* &#64;return

*/

public static String getBluetoothMACAddress(Context context) {

String btMacAddress &#61; "";

BluetoothAdapter ba &#61; BluetoothAdapter.getDefaultAdapter();

if (ba !&#61; null) {

if (!ba.isEnabled()) {

btMacAddress &#61; "Bluetooth not open";

// 启动蓝牙

Intent in &#61; new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

context.startActivity(in);

} else {

btMacAddress &#61; ba.getAddress();

}

} else {

btMacAddress &#61; "No Bluetooth Device";

}

return btMacAddress;

}

}

权限&#xff1a;



推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文介绍了两种方法,用于检测 Android 设备是否开启了开发者模式。第一种方法通过检查 USB 调试模式的状态,第二种方法则直接判断开发者选项是否启用。这两种方法均提供了代码示例和详细解释。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 本文介绍了如何在iOS应用中自定义导航栏按钮,包括使用普通按钮和图片生成导航条专用按钮的方法。同时,探讨了在不同版本的iOS系统中实现多按钮布局的技术方案。 ... [详细]
  • iOS 开发技巧:TabBarController 自定义与本地通知设置
    本文介绍了如何在 iOS 中自定义 TabBarController 的背景颜色和选中项的颜色,以及如何使用本地通知设置应用程序图标上的提醒个数。通过这些技巧,可以提升应用的用户体验。 ... [详细]
author-avatar
风过无痕啦啦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有