android手机获取唯一标识的方法

获取手机唯一标识

拼接的方式获取手机唯一标识

第一种方式是获取IMEI,但是有的手机如果不是正品的话,就获取不到所以通过这一种方式还是会出现有的设备是没有唯一标识的
第二种方式获取手机卡的序列号,当然这种也不是唯一的,因为有的手机是双卡双待的所以可能会出现空的情况
第三种方式是万能的也就是UUID,随机生成一个标识,但是必须保存在本地,防止下一次进入的时候再次生成随机码
进行三层判断,来获取手机的唯一标识。

//获取手机的唯一标识 public String getPhoneSign(){ StringBuilder deviceId = new StringBuilder(); // 渠道标志 deviceId.append("a"); try { //IMEI(imei) TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); String imei = tm.getDeviceId(); if(!TextUtils.isEmpty(imei)){ deviceId.append("imei"); deviceId.append(imei); return deviceId.toString(); } //序列号(sn) String sn = tm.getSimSerialNumber(); if(!TextUtils.isEmpty(sn)){ deviceId.append("sn"); deviceId.append(sn); return deviceId.toString(); } //如果上面都没有, 则生成一个id:随机码 String uuid = getUUID(); if(!TextUtils.isEmpty(uuid)){ deviceId.append("id"); deviceId.append(uuid); return deviceId.toString(); } } catch (Exception e) { e.printStackTrace(); deviceId.append("id").append(getUUID()); } return deviceId.toString(); } /** * 得到全局唯一UUID */ private String uuid; public String getUUID(){ SharedPreferences mShare = getSharedPreferences("uuid",MODE_PRIVATE); if(mShare != null){ uuid = mShare.getString("uuid", ""); } if(TextUtils.isEmpty(uuid)){ uuid = UUID.randomUUID().toString(); mShare.edit().putString("uuid",uuid).commit(); } return uuid; }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-11-09 06:05:47

android手机获取唯一标识的方法的相关文章

spring mvc-Java SpringMVC web项目如何获取手机的唯一标识

问题描述 Java SpringMVC web项目如何获取手机的唯一标识 想做一个web手机签到系统,为了防止同学用其他同学的手机签到,所以要记住每个同学手机的. 签到的基本流程是同学用手机连上特定的wifi,然后用手机浏览器登陆某个局域网IP,在出来的页面那里签到. 唯一标识(mac地址或者IMEI之类的),这样这个同学就只能用这台手机签到了. 那么问题来了?请问如何在java后台通过HttpServletRequest或者其他方法获取到手机的唯一标识,而且所有手机都是连上了同一个路由器的局域

Android手机获取root权限并实现关机重启功能的方法

本文实例讲述了Android手机获取root权限并实现关机重启功能的方法,是Android程序设计中非常常见的重要功能.现分享给大家,供大家在Android程序开发中参考之用. 具体功能代码如下: /* * 执行命令 * @param command * 1.获取root权限 "chmod 777 "+getPackageCodePath() * 2.关机 reboot -p * 3.重启 reboot */ public static boolean execCmd(String c

android中获取root权限的方法以及原理(转)

一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的"越狱"有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等. 2. Root的原理介绍 谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别

Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】

本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import an

Android编程获取图片数据的方法详解

本文实例讲述了Android编程获取图片数据的方法.分享给大家供大家参考,具体如下: 网络的访问在我们日常生活中太重要了,如果没有网络我们的生活将会是什么样子呢?Android手机和浏览器也是一样的,也可以通过网络通讯获取数据,如调用webservice,EJB等.下面就通过一个小例子从网络获取一幅图片并显示在手机上,开发中将会使用到一个新的组件ImageView. 1. 写一个用来处理字节流的工具类 package org.lxh.util; import java.io.ByteArrayO

Android编程获取GPS数据的方法详解_Android

本文实例讲述了Android编程获取GPS数据的方法.分享给大家供大家参考,具体如下: GPS是Android系统中重要的组成部分,通过它可以衍生出众多的与位置相关的应用. Android的GPS有一个专门的管理类,称为LocationManager,所有的GPS定位服务都由其对象产生并进行控制. 首先需要明确的是,LocationManager类的对象获取并不是直接创建的,而是由系统提供的,具体来说,通过如下方法,为一个LocationManager对象建立一个对象引用: 复制代码 代码如下:

Android实现获取SERIAL信息的方法_Android

本文实例讲述了Android实现获取SERIAL信息的方法.分享给大家供大家参考.具体如下: android.os.build.serial 在API 9 中引入,如果低于9的系统可以通过这个方法获取这个信息值 java代码如下: public static String getDeviceSerial() { String serial = "unknown"; try { Class clazz = Class.forName("android.os.Build"

Android编程获取全局Context的方法_Android

本文实例讲述了Android编程获取全局Context的方法.分享给大家供大家参考,具体如下: 有时,在处理业务逻辑的时候,需要Context对象,但在某些情况下,并非容易获取,这时就需要一些巧妙的手段来管理Context. 在Android中,提供了一个类Application,当应用程序启动的时候,系统会自动将这个类进行初始化,所以我们可以编写自己的Application类以管理一些全局的状态信息. 在这里,以获取全局Context为例. 1.编写自己的Application类 packag

Android编程获取通知栏高度的方法_Android

本文实例讲述了Android编程获取通知栏高度的方法.分享给大家供大家参考,具体如下: 这里通过反射机制获取通知栏高度 通知栏高度写在dimen文件中: public static int getStatusBarHeight(Context context){ Class<?> c = null; Object obj = null; Field field = null; int x = 0, statusBarHeight = 0; try { c = Class.forName(&qu