读取imei手机串号

转自:http://blog.sina.com.cn/s/blog_60a9446b0100lxuk.html



						/**
						 * 读取imei手机串号
						 */
						
						TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
						String imei = mTelephonyMgr.getDeviceId();

在C语言中,可以使用libusb库来读取USB设备串号。下面是读取USB设备串号的基本步骤: 1. 引入libusb库的头文件:`#include <libusb.h>` 2. 初始化libusb库:`libusb_init(NULL);` 3. 获取USB设备列表:`libusb_get_device_list(NULL, &devs);` 4. 遍历设备列表,找到目标设备:可以使用libusb_get_device_descriptor函数获取设备描述符,然后通过描述符中的idVendor和idProduct来确定目标设备。 5. 打开目标设备:`libusb_open(dev, &dev_handle);` 6. 获取目标设备的串号:可以使用libusb_control_transfer函数向设备发送请求,获取设备的串号。 7. 关闭设备:`libusb_close(dev_handle);` 8. 释放设备列表:`libusb_free_device_list(devs, 1);` 9. 退出libusb库:`libusb_exit(NULL);` 下面是一个简单的示例代码,演示了如何读取USB设备的串号: ```c #include <stdio.h> #include <stdlib.h> #include <libusb.h> #define VENDOR_ID 0x1234 #define PRODUCT_ID 0x5678 int main(int argc, char **argv) { libusb_device **devs; libusb_device_handle *dev_handle; libusb_context *ctx = NULL; int r; ssize_t cnt; int i; r = libusb_init(&ctx); if (r < 0) { fprintf(stderr, "libusb_init error %d\n", r); return 1; } cnt = libusb_get_device_list(ctx, &devs); if (cnt < 0) { fprintf(stderr, "libusb_get_device_list error %d\n", (int)cnt); libusb_exit(ctx); return 1; } for (i = 0; i < cnt; i++) { libusb_device *dev = devs[i]; struct libusb_device_descriptor desc; r = libusb_get_device_descriptor(dev, &desc); if (r < 0) { fprintf(stderr, "libusb_get_device_descriptor error %d\n", r); continue; } if (desc.idVendor == VENDOR_ID && desc.idProduct == PRODUCT_ID) { r = libusb_open(dev, &dev_handle); if (r < 0) { fprintf(stderr, "libusb_open error %d\n", r); continue; } unsigned char serial_number[256]; r = libusb_control_transfer(dev_handle, LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE, 0x01, 0, 0, serial_number, sizeof(serial_number), 1000); if (r < 0) { fprintf(stderr, "libusb_control_transfer error %d\n", r); libusb_close(dev_handle); continue; } printf("Serial Number: %s\n", serial_number); libusb_close(dev_handle); } } libusb_free_device_list(devs, 1); libusb_exit(ctx); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值