获取Mobile设备唯一ID
2013-02-26 16:33
465 查看
最近需要对Mobile软件进行版本控制,自然就想到获取Mobile设备唯一的ID。通过在网上查找资料,现在已经基本完成了。
目前最有效的一个方法是调用
这个API函数来获取ID。
下面这篇文章对这个函数的使用介绍的很清楚:
/*
HRESULT GetDeviceUniqueID(
LPBYTE pbApplicationData,
DWORD cbApplictionData,
DWORD dwDeviceIDVersion,
LPBYTE pbDeviceIDOutput,
DWORD* pcbDeviceIDOutput
);
*/
[DllImport("coredll.dll")]
private extern static int GetDeviceUniqueID([In, Out] byte[]
appdata,
int cbApplictionData,
int dwDeviceIDVersion,
[In, Out] byte[] deviceIDOuput,
out uint pcbDeviceIDOutput);
private byte[] GetDeviceID(string AppString)
{
// Call the GetDeviceUniqueID
byte[] AppData = new byte[AppString.Length];
for (int count = 0; count < AppString.Length; count++)
AppData[count] = (byte)AppString[count];
int appDataSize = AppData.Length;
byte[] DeviceOutput = new byte[20];
uint SizeOut = 20;
GetDeviceUniqueID(AppData, appDataSize, 1, DeviceOutput, out SizeOut);
return DeviceOutput;
}
通过调用coredll.dll中的GetDeviceUniqueIDAPI函数,可以得到设备唯一ID。
我在使用这个函数时,一直对AppString这个参数不理解,查找多个资料,也没有详细的说明。后来经过多次尝试,总算有点收获。
参数AppString代表应用程序名称,可以为一定长度的任何有效字符串。
比如,可以给AppString赋值"MyAppString",调用此函数后,可以得到有效的设备ID。
但是这个字符串的长度必须要满足在一定的范围之内,不能太长,也不能太短。
如果赋值"MyApp",得到的是空字符串;如果赋值"AppStringString",得到的是乱码。太短不行,太长也不行。
我在项目中使用的是"MyAppString",其他的字符串暂时没有试。
目前最有效的一个方法是调用
GetDeviceUniqueID
这个API函数来获取ID。下面这篇文章对这个函数的使用介绍的很清楚:
/*
HRESULT GetDeviceUniqueID(
LPBYTE pbApplicationData,
DWORD cbApplictionData,
DWORD dwDeviceIDVersion,
LPBYTE pbDeviceIDOutput,
DWORD* pcbDeviceIDOutput
);
*/
[DllImport("coredll.dll")]
private extern static int GetDeviceUniqueID([In, Out] byte[]
appdata,
int cbApplictionData,
int dwDeviceIDVersion,
[In, Out] byte[] deviceIDOuput,
out uint pcbDeviceIDOutput);
private byte[] GetDeviceID(string AppString)
{
// Call the GetDeviceUniqueID
byte[] AppData = new byte[AppString.Length];
for (int count = 0; count < AppString.Length; count++)
AppData[count] = (byte)AppString[count];
int appDataSize = AppData.Length;
byte[] DeviceOutput = new byte[20];
uint SizeOut = 20;
GetDeviceUniqueID(AppData, appDataSize, 1, DeviceOutput, out SizeOut);
return DeviceOutput;
}
通过调用coredll.dll中的GetDeviceUniqueIDAPI函数,可以得到设备唯一ID。
我在使用这个函数时,一直对AppString这个参数不理解,查找多个资料,也没有详细的说明。后来经过多次尝试,总算有点收获。
参数AppString代表应用程序名称,可以为一定长度的任何有效字符串。
比如,可以给AppString赋值"MyAppString",调用此函数后,可以得到有效的设备ID。
但是这个字符串的长度必须要满足在一定的范围之内,不能太长,也不能太短。
如果赋值"MyApp",得到的是空字符串;如果赋值"AppStringString",得到的是乱码。太短不行,太长也不行。
我在项目中使用的是"MyAppString",其他的字符串暂时没有试。
相关文章推荐
- Android能够获取到唯一的设备ID吗?
- iOS开发中获取设备唯一ID
- Android能够获取到唯一的设备ID吗?
- 关于获取设备的唯一设备ID,MAC地址 IOS/Android问题
- Android多种方法获取唯一设备id
- Android 获取设备唯一ID
- Win8获取设备唯一ID
- Android开发获取唯一设备ID
- 获取Android设备的唯一 Android ID
- android开发中获取的设备id(每部手机的唯一标识)
- 记录一把,获取设备唯一id
- Android获取设备唯一ID的几种方式
- android系统获取系统相关信息(如Android设备的唯一ID等)(源码)
- Android 能够获取到唯一的设备 ID 吗?
- Android下获取设备唯一标识(UDID, DeviceID...)
- 如何获取Android移动终端设备唯一ID
- Android获取设备唯一ID的方法
- 根据mac地址+deviceid获取设备唯一编码 获取手机及SIM卡相关信息
- 获取设备唯一ID的几种方式