求助:在QPython中获取Android设备唯一ID的Python脚本
在Android(兼容QPython)获取设备唯一标识的Python方案
方法一:使用QPython内置androidhelper模块(推荐)
QPython自带androidhelper模块,无需额外依赖,能直接获取Android ID(系统级唯一标识,恢复出厂设置后会变更),代码简单且无需root:
from androidhelper import Android droid = Android() android_id = droid.getAndroidId().result print(f"Android ID: {android_id}")
方法二:通过subprocess读取系统硬件信息
如果需要CPU Serial、Hardware ID等标识,可以读取Android的/proc文件系统,这是Android系统暴露硬件信息的标准路径,无需root权限:
获取CPU Serial(部分设备支持)
import subprocess def get_cpu_serial(): try: output = subprocess.check_output(["cat", "/proc/cpuinfo"], encoding="utf-8") for line in output.splitlines(): if line.startswith("Serial"): return line.split(":")[1].strip() return "未找到CPU Serial字段" except Exception as e: return f"获取失败: {str(e)}" print(f"CPU Serial: {get_cpu_serial()}")
获取Hardware ID
def get_hardware_id(): try: output = subprocess.check_output(["cat", "/proc/cpuinfo"], encoding="utf-8") for line in output.splitlines(): if line.startswith("Hardware"): return line.split(":")[1].strip() return "未找到Hardware ID字段" except Exception as e: return f"获取失败: {str(e)}" print(f"Hardware ID: {get_hardware_id()}")
注意:部分设备的
/proc/cpuinfo可能没有Serial字段,这由硬件厂商决定,属于正常情况。
方法三:获取IMEI(仅真机有效,需权限)
如果是真机且需要电话权限,可以获取IMEI(国际移动设备识别码),模拟器通常不支持:
from androidhelper import Android droid = Android() # 先申请读取设备状态权限 droid.requestPermission("android.permission.READ_PHONE_STATE") imei = droid.getDeviceId().result print(f"IMEI: {imei if imei else '模拟器无IMEI或未授权'}")
内容的提问来源于stack exchange,提问作者Troy9090
相关产品推荐
相关产品推荐

