安卓设备怎么获取uuid号
1. Android能够获取到唯一的设备ID吗
能,但是需要说明一下:
1. DEVICE_ID
假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID。在以前,我们的Android设备是手机,这个DEVICE_ID可以同通过TelephonyManager.getDeviceId()获取,它根据不同的手机设备返回IMEI,MEID或者ESN码,但它在使用的过程中会遇到很多问题:
非手机设备: 如果只带有Wifi的设备或者音乐播放器没有通话的硬件功能的话就没有这个DEVICE_ID
权限: 获取DEVICE_ID需要READ_PHONE_STATE权限,但如果我们只为了获取它,没有用到其他的通话功能,那这个权限有点大才小用
bug:在少数的一些手机设备上,该实现有漏洞,会返回垃圾,如:zeros或者asterisks的产品
2. MAC ADDRESS
我们也可以通过手机的Wifi或者蓝牙设备获取MAC ADDRESS作为DEVICE ID,但是并不建议这么做,因为并不是所有的设备都有Wifi,并且,如果Wifi没有打开,那硬件设备无法返回MAC ADDRESS.
3. Serial Number
在Android 2.3可以通过android.os.Build.SERIAL获取,非手机设备可以通过该接口获取。
4. ANDROID_ID
ANDROID_ID是设备第一次启动时产生和存储的64bit的一个数,当设备被wipe后该数重置
ANDROID_ID似乎是获取Device ID的一个好选择,但它也有缺陷:
它在Android <=2.1 or Android >=2.3的版本是可靠、稳定的,但在2.2的版本并不是100%可靠的
在主流厂商生产的设备上,有一个很经常的bug,就是每个设备都会产生相同的ANDROID_ID:9774d56d682e549c
5. Installtion ID : UUID
以上四种方式都有或多或少存在的一定的局限性或者bug,在这里,有另外一种方式解决,就是使用UUID,该方法无需访问设备的资源,也跟设备类型无关。
这种方式是通过在程序安装后第一次运行后生成一个ID实现的,但该方式跟设备唯一标识不一样,它会因为不同的应用程序而产生不同的ID,而不是设备唯一ID。因此经常用来标识在某个应用中的唯一ID(即Installtion ID),或者跟踪应用的安装数量。很幸运的,Google Developer Blog提供了这样的一个框架:
2. 如何获取Android移动终端设备唯一ID
我自己以前用的一个工具类,用到了uuid,给你一用吧
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.UUID;
import android.content.Context;
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation)
throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation)
throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
// 调用方法
// 获取标识
String SerialNumber = "";
SerialNumber = Installation.id(mContext); // 静态方法,直接调用
3. android怎样获取蓝牙uuid
import
android.telephony.TelephonyManager;
//引入相抄关包
TelephonyManager
tm
=
(TelephonyManager)
this.getSystemService(TELEPHONY_SERVICE);
tm.getDeviceId();//得到设备唯一ID,(GSM手机的
IMEI
和
CDMA手机的
MEID)
4. android怎么获取当前app的uuid
import android.telephony.TelephonyManager; //引入相关包
TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
tm.getDeviceId();//得到设备唯一内ID,(GSM手机的容 IMEI 和 CDMA手机的 MEID)
5. JS怎么能实现获取设备的UUID,比如手机访问这个地址可以获取它的UUID。
无法做到,包括后端语言也无法在 Web 中获取 UUID。
基于安全问题,JavaScript 无法获取内到设备的 UUID,也没有容接口可以获取 UUID。
如果 JavaScript 可以轻松做到,安卓设备的 APP 权限岂不是花瓶?!
6. android 蓝牙查找和连接怎么获取uuid
看你走什么协议
比方说你使用下面链接这种串口透传的蓝牙模块通信,那么UUID就是:
SPP_UUID = "-0000-1000-8000-00805F9B34FB"
7. 如何获取Android唯一标识
1. DEVICE_ID
假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID。在以前,我们的Android设备是手机,这个DEVICE_ID可以同
通过TelephonyManager.getDeviceId()获取,它根据不同的手机设备返回IMEI,MEID或者ESN码,但它在使用的过程中
会遇到很多问题:
非手机设备: 如果只带有Wifi的设备或者音乐播放器没有通话的硬件功能的话就没有这个DEVICE_ID
权限: 获取DEVICE_ID需要READ_PHONE_STATE权限,但如果我们只为了获取它,没有用到其他的通话功能,那这个权限有点大才小用
bug:在少数的一些手机设备上,该实现有漏洞,会返回垃圾,如:zeros或者asterisks的产品。
2. MAC ADDRESS
我们也可以通过手机的Wifi或者蓝牙设备获取MAC ADDRESS作为DEVICE ID,但是并不建议这么做,因为并不是所有的设备都有Wifi,并且,如果Wifi没有打开,那硬件设备无法返回MAC ADDRESS.
3. Serial Number
在Android 2.3可以通过android.os.Build.SERIAL获取,非手机设备可以通过该接口获取。
4. ANDROID_ID
ANDROID_ID是设备第一次启动时产生和存储的64bit的一个数,当设备被wipe后该数重置
ANDROID_ID似乎是获取Device ID的一个好选择,但它也有缺陷:
它在Android <=2.1 or Android >=2.3的版本是可靠、稳定的,但在2.2的版本并不是100%可靠的
在主流厂商生产的设备上,有一个很经常的bug,就是每个设备都会产生相同的ANDROID_ID:9774d56d682e549c
5. Installtion ID : UUID
8. android如何获得uuid
所有的设备都可以返回一个 TelephonyManager.getDeviceId()
所有的GSM设备 (测试设备都装载有SIM卡) 可以返回一个 TelephonyManager.getSimSerialNumber()
所有添加有谷歌账户的设备可以返回一个 ANDROID_ID
所有的CDMA设备对于 ANDROID_ID 和 TelephonyManager.getDeviceId() 返回相同的值(只要在设置时添加了谷歌账户)
所以如果你想得到设备的唯一序号, TelephonyManager.getDeviceId() 。
代码如下:
final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, tmPhone, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());
String uniqueId = deviceUuid.toString();
最后的deviceID可能是这样的结果: 00000000-54b3-e7c7-0000-000046bffd97
9. H5用户在手机浏览器访问网站页面,如何获取用户当前设备的信息uuid
无法做到,包括后端语言也无法在 Web 中获取 UUID。
基于安全问题,JavaScript 无法获取到设备的回 UUID,也没有接口可以获取 UUID。
如果答 JavaScript 可以轻松做到,安卓设备的 APP 权限岂不是花瓶?!
10. 如何查看自己安卓手机的Android Device ID
1、打开拨号界面。
(10)安卓设备怎么获取uuid号扩展阅读:
AndroidID用于唯一识别一部设备的一次刷机行为,虽然不能完全确定该设备的唯一性(真的唯一性是用IMEI号的),但是可以很大程度上过滤重复设备。
这是移动互联网广告行业,尤其是CPI广告的基础。设备ID非常重要。CPI广告是根据实际安装数量计费的,广告商可以使用androidid来排除重复安装。传递一个AndroidID直接影响到某些广告是否会被放置在某些位置。
在RTB行业中,有很多提供数据的第三方公司,他们根据AndroidID买卖数据,将各种数据对应给用户。