Android_获取手机设备信息device_id

2024-08-25 22:32

本文主要是介绍Android_获取手机设备信息device_id,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

执行:getDeviceInfo(Context context) 方法,返回结果就是设备信息

 /*** 获取设备的信息* @param context* @param permission* @return*/public static boolean checkPermission(Context context, String permission) {boolean result = false;if (Build.VERSION.SDK_INT >= 23) {try {Class<?> clazz = Class.forName("android.content.Context");Method method = clazz.getMethod("checkSelfPermission", String.class);int rest = (Integer) method.invoke(context, permission);if (rest == PackageManager.PERMISSION_GRANTED) {result = true;} else {result = false;}} catch (Exception e) {result = false;}} else {PackageManager pm = context.getPackageManager();if (pm.checkPermission(permission, context.getPackageName()) == PackageManager.PERMISSION_GRANTED) {result = true;}}return result;}
public static String getDeviceInfo(Context context) {try {org.json.JSONObject json = new org.json.JSONObject();android.telephony.TelephonyManager tm = (android.telephony.TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);String device_id = null;if (checkPermission(context, Manifest.permission.READ_PHONE_STATE)) {device_id = tm.getDeviceId();}String mac = null;FileReader fstream = null;try {fstream = new FileReader("/sys/class/net/wlan0/address");} catch (FileNotFoundException e) {fstream = new FileReader("/sys/class/net/eth0/address");}BufferedReader in = null;if (fstream != null) {try {in = new BufferedReader(fstream, 1024);mac = in.readLine();} catch (IOException e) {} finally {if (fstream != null) {try {fstream.close();} catch (IOException e) {e.printStackTrace();}}if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}}json.put("mac", mac);if (TextUtils.isEmpty(device_id)) {device_id = mac;}if (TextUtils.isEmpty(device_id)) {device_id = android.provider.Settings.Secure.getString(context.getContentResolver(),android.provider.Settings.Secure.ANDROID_ID);}json.put("device_id", device_id);return json.toString();} catch (Exception e) {e.printStackTrace();}return null;}


这篇关于Android_获取手机设备信息device_id的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106832

相关文章

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

SQLServer中生成雪花ID(Snowflake ID)的实现方法

《SQLServer中生成雪花ID(SnowflakeID)的实现方法》:本文主要介绍在SQLServer中生成雪花ID(SnowflakeID)的实现方法,文中通过示例代码介绍的非常详细,... 目录前言认识雪花ID雪花ID的核心特点雪花ID的结构(64位)雪花ID的优势雪花ID的局限性雪花ID的应用场景

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法