资讯

展开

游戏无法获取设备唯一id怎么办,手机无法获取正确设备Id

作者:本站作者

本文目录一览

1,手机无法获取正确设备Id

解决办法,第一步手机关机,第二步拔出SIM卡,第三步重新插回去,第四步再开机就好了

手机无法获取正确设备Id

2,手机无法获取正确设备Id

解决办法,第一步手机关机,第二步拔出SIM卡,第三步重新插回去,第四步再开机就好了

手机无法获取正确设备Id

3,无法从正确的设备获取正确的ID

假如原先是电信的卡,可以换成移动的卡,设置一下移动网络。2关机,换回来电信卡,网络服务正常。3我的出错原因是,我由电信的3g卡换成4G卡,然后网络设置里面设置成了4G网络 ,然后就算你怎么重启,网络设置好像默认为认不了电信的4G卡。所以一直出错。所以换成移动的卡,引导一下设置。就可以了。

无法从正确的设备获取正确的ID

4,无法从正确的设备获取正确的ID

假如原先是电信的卡,可以换成移动的卡,设置一下移动网络。2关机,换回来电信卡,网络服务正常。3我的出错原因是,我由电信的3g卡换成4G卡,然后网络设置里面设置成了4G网络 ,然后就算你怎么重启,网络设置好像默认为认不了电信的4G卡。所以一直出错。所以换成移动的卡,引导一下设置。就可以了。

5,如何检索Android设备的唯一ID

打开拨号界面输入*#06# 手机会自动反馈给你这台设备的唯一ID?IMEI(国际移动设备识别码)唯一编号,用于识别 GSM,WCDMA手机以及一些卫星电话(移动设备识别码)全球唯一编号,用于识别CDMA移动电台设备的物理硬件,MEID出现的目的是取代ESN号段(电子序列号)(电子序列号)唯一编号,用于识别CDMA手机(国际移动用户识别码)与所有GSM和UMTS网络手机用户相关联的唯一识别编号如需要检索设备的ID
不过显然的,有些用户比其他人更加偏执一些,可以将这些标识中的一个或者多个进行hash运算就很有用,生成的字符串仍然可以唯一标识该设备,但是不会明确的标识实际的设备。例如,使用string.hashcode(),再加上一个uuid,这里有详细的代码》》

6,放置江湖未成功获取到设备id

没有授权游戏读取手机的权限。在游戏《放置江湖》中,是需要玩家使用游戏的账号来登录,由于游戏设置了自动登录,所以玩家只需要点击游戏即可进入游戏,若出现了未成功获取到设备id,则是因为玩家没有授权游戏读取手机的权限,只需要点击手机的总系统,找到《放置江湖》游戏并且授权读取手机id的权限,即可解决这个问题。

7,Android获取设备唯一ID的几种方式

1. The IMEI: 仅仅只对Android手机有效:  TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);  String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE  采用此种方法,需要在AndroidManifest.xml中加入一个许可:android.permission.READ_PHONE_STATE,并且用户应当允许安装此应用。作为手机来讲,IMEI是唯一的,它应该类似于 359881030314356(除非你有一个没有量产的手机(水货)它可能有无效的IMEI,如:0000000000000)。  2. Pseudo-Unique ID, 这个在任何Android手机中都有效  有一些特殊的情况,一些如平板电脑的设置没有通话功能,或者你不愿加入READ_PHONE_STATE许可。而你仍然想获得唯一序列号之类的东西。这时你可以通过取出ROM版本、制造商、CPU型号、以及其他硬件信息来实现这一点。这样计算出来的ID不是唯一的(因为如果两个手机应用了同样的硬件以及Rom 镜像)。但应当明白的是,出现类似情况的可能性基本可以忽略。要实现这一点,你可以使用Build类:  String m_szDevIDShort = "35" + //we make this look like a valid IMEI  Build.BOARD.length()%10+ Build.BRAND.length()%10 + Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 + Build.DISPLAY.length()%10 + Build.HOST.length()%10 + Build.ID.length()%10 + Build.MANUFACTURER.length()%10 + Build.MODEL.length()%10 + Build.PRODUCT.length()%10 + Build.TAGS.length()%10 + Build.TYPE.length()%10 + Build.USER.length()%10 ; //13 digits  大多数的Build成员都是字符串形式的,我们只取他们的长度信息。我们取到13个数字,并在前面加上“35”。这样这个ID看起来就和15位IMEI一样了。
我自己以前用的一个工具类,用到了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); // 静态方法,直接调用

8,无法获取设备ID该怎么办

为了防止iPhone被盗信息泄露,最好是开启。  1.进入AppleID管理员后,按下「管理你的AppleID」,没有帐号就建立一个吧!  2.登入你的AppleID帐号  3.先按一下左手边的「密码与帐号安全」,然后右手边填入你申请AppleID时所输入的答案。如果已忘了的话就要求将答案传送至你的Email地址吧。  4.通过第一关的安全提示问题后,就会见到双步骤验证的设定,按下「开始设定」  5.了解一下使用方法,就是使用帐号和密码登入后,还需要通过你注册的设备接收验证码,这样才能正式登入AppleID帐号。没问题的话,就继续:  6.接下来的还是一些需要你清楚和记注的事项,大家可以先看一看  7.最后,你还必须等待3天才可以开启这个验证机制。原因是,Apple担心你的帐号已经被盗,做这次设定的并非阁下你本人,所以需要3天后确定没有其他人偷用你的帐号后,就可以开始完成设定。Apple会发送电邮给你作确定,大家3天后再跟指示做即可。  三天后当你收到Apple寄来的通知电邮,就可以继续完成设定。  重新回到管理AppleID的页面,然后继续前一页步骤1-6。这时你就可以继续后半部的四个步骤,第一部是新增电话号码,以收取4个数字的SMS验证码。  验证了手机号码后,你还可以新增已经开启了「寻找我的iPhone」的iPhone或iPad作为验证设备,同样获取4位数字验证。  接着是一条复原密钥,作用是以防日后你的手机已验证的设备遗失了,也可以通过这条复原密钥来登入帐号,所以大家一定要小心保管好。  再下一步是确认你的复原密钥,以确保你已经记下了:  最后一步就是确认你清楚这个双步验证是做什么的,因为日后连Apple也无法代你重置密码,自己必定要管理好。  这样就能够好好地保护AppleID以免费盗了。

9,如何获取Android设备唯一识别码

可以参考如下内容,获取唯一识别码: Device ID 唯一的设备ID,如GSM网络的IMEI,CDMA网络的MEID / ESN,可能返回null(API文档的描述) 只对手机设备有效,对于不在手机网络的设备,会返回null 获取到的Device ID值,即使设备恢复出厂设置也不会改变 需要READ_PHONE_STATE权限 某些设备的Device ID实现有bug,会返回0或* TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String deviceId = tm.getDeviceId();
Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID。例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID。 范围 本文提供有关如何读取各种Android设备的 ID的介绍,用以使用标识号。本文假定用户已经安装了Android以及开发应用程序必要的工具。并且,本文假定用户已了解Android的基本知识。 简介在搭载Android操作系统的设备中,已经存在好几种类型的设备标识号。先前的所有Android设备都具有电话功能,因此查找每部设备硬件唯一的IMEI,MEID,或ESN也很容易。但仅能使用Wifi的设备或音乐播放器没有电话硬件,所以没有这种类型的唯一标识号。本文阐述了如何读取不同Android设备的标识号。检索Android设备ID各种方式 以下是Android设备不同类型的识别设备ID。 · 唯一编号(IMEI,MEID,ESN,IMSI) · MAC地址 · 序列号 · ANDROID_ID 唯一编号(IMEI,MEID,ESN,IMSI) 说明在以前,当Android设备均作为电话使用时,寻找唯一标识号比较简单:()可用于找到(取决于网络技术)手机硬件唯一的IMEI,MEID,ESN和IMSI编号。 TelephonyManager.getDeviceId IMEI,MEID,ESN,IMSI的定义如下: ?IMEI(国际移动设备识别码)唯一编号,用于识别 GSM,WCDMA手机以及一些卫星电话(移动设备识别码)全球唯一编号,用于识别CDMA移动电台设备的物理硬件,MEID出现的目的是取代ESN号段(电子序列号)(电子序列号)唯一编号,用于识别CDMA手机(国际移动用户识别码)与所有GSM和UMTS网络手机用户相关联的唯一识别编号如需要检索设备的ID,在项目中要使用以下代码: ?MEID ?ESN ?IMSI import android.telephony.TelephonyManager; import android.content.Context; String imeistring = null; String imsistring = null; { TelephonyManager telephonyManager; telephonyManager = ( TelephonyManager )getSystemService( Context.TELEPHONY_SERVICE ); /* * getDeviceId() function Returns the unique device ID. * for example,the IMEI for GSM and the MEID or ESN for CDMA phones. */ imeistring = telephonyManager.getDeviceId(); /* * getSubscriberId() function Returns the unique subscriber ID, * for example, the IMSI for a GSM phone. */ imsistring = telephonyManager.getSubscriberId(); } 如要只读取手机的状态,则需添加READ_PHONE_STATE许可到AndroidManifest.xml文件中。 <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> 缺点 ?Android设备要具有电话功能 ?其工作不是很可靠 ?序列号 ?当其工作时,该值保留了设备的重置信息(“恢复出厂设置”),从而可以消除当客户删除自己设备上的信息,并把设备转另一个人时发生的错误。 Mac地址 说明 可通过检索找到设备的Wi - Fi或蓝牙硬件的Mac地址。但是,不推荐使用Mac地址作为唯一的标识号。 缺点设备要具备Wi – Fi功能(并非所有的设备都有Wi – Fi功能)如果设备目前正在使用Wi - Fi,则不能报告Mac地址 序列号 从Android 2.3(“姜饼”)开始,通过android.os.Build.SERIAL方法序列号可被使用。没有电话功能的设备也都需要上给出唯一的设备ID; 某些手机也可以需要这样做。序列号可以用于识别MID(移动互联网设备)或PMP(便携式媒体播放器),这两种设备都没有电话功能。通过读取系统属性值“ro.serialno”的方法,可以使用序列号作为设备ID 。如检索序列号并作为设备ID使用,请参考下面的代码示例。 import java.lang.reflect.Method; String serialnum = null; try { Class<?> c = Class.forName("android.os.SystemProperties"); Method get = c.getMethod("get", String.class, String.class ); serialnum = (String)( get.invoke(c, "ro.serialno", "unknown" ) ); } catch (Exception ignored) { } 缺点 序列号无法在所有Android设备上使用。 ANDROID_ID 说明 更具体地说,Settings.Secure.ANDROID_ID 是一串64位的编码(十六进制的字符串),是随机生成的设备的第一个引导,其记录着一个固定值,通过它可以知道设备的寿命(在设备恢复出厂设置后,该值可能会改变)。 ANDROID_ID也可视为作为唯一设备标识号的一个好选择。如要检索用于设备ID 的ANDROID_ID,请参阅下面的示例代码 String androidId = Settings.Secure.getString(getContentResolver(),Settings.Secure.ANDROID_ID); 缺点 ? 对于Android 2.2(“Froyo”)之前的设备不是100%的可靠 ? 此外,在主流制造商的畅销手机中至少存在一个众所周知的错误,每一个实例都具有相同的ANDROID_ID。 结论 对于绝大多数应用来说,只需识别特定的安装配置,而不需要识别物理设备。所幸是,这样做就省去了麻烦。 下面是部分使用设备ID的最佳途径: ?支持各种设备类型的另一种方法是使用getDeviceID()API和ro.serialno的组合 ?有许多值得参考的原因,来提醒开发者避免试图识别特定的设备。对于那些想做一下这方面尝试的用户, 最好的办法可能是使用ANDROID_ID,并在一些传统设备上做尝试。
1. 首先,添加权限: //读取手机状态权限 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 2. 获取手机管理器对象 TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService( Context.TELEPHONY_SERVICE); //获取本机MIEI号码 String deviceId = telephonyManager.getDeviceId(); 3.deviceId就是设备唯一识别码

10,android获取设备唯一ID优化方案

最近,因公司产品及客户需要,领导让我研究免存储设备ID,以及给出一个设备ID最佳的方案(可与存储相结合)。在研究过浏览器的fingerprient2js后,颇有心得,并且看网上似乎木有完美的解决方案,于是写了这篇文章,仅供需要的开发者参考。(该算法暂未进行验证,这里先给出一个jar包,后期我会在SDK中加入调查接口,分两个jar包(测试版和正式版),希望开发者能支持测试版,稳定后使用正式版。) 在产品中,首先肯定要尽量避免权限,其次考虑卸载APP后ID不一致的问题,再就是尽量结合存储,降低卸载或重装app时,设备ID改变的概率。最后,设计出合理方案,对造成不利的因素进行列举。 A.android_id: 什么是android_id呢?当设备在第一次启动时,系统会随机产生一个64位的数字,然后以16进制的形式保存在设备上,且API提供了获取这一参数的方法: 这就是android_id,当设备重新初始化或者刷机的时候,会被重置。 除此以外,android_id还有其他的bug,比如: 1.不同的设备可能会产生相同的android_id。 2.有的厂商设备无法获取android_id,会返回null。 3.对于CDMA的设备,ANDROID_ID和TelephonyManager.getDeviceId() 的值相同。 4.不同的android系统版本稳定性不同。 B.硬件序列号(SERIAL) API给的解释是: A hardware serial number, if available.(一个硬件的序列码,如果有效的话) so,虽然我没有用几百台手机测试,也能知道这个值有时候是无效的,说的这么隐晦。 C.指纹 fingerprint:设备的唯一标识。由设备的多个信息拼接合成。 也是在JavaScript才接触到这个单词”fingerprint“,这个词也很生动,意思是能大概的标识一个设备,像指纹一样,但不排除重复的可能性。 理论上讲用这个属性是可以标识一个设备的,但是其实并不是,两台一摸一样的新手机,这个值相同的可能性是很多的。为了更加进一步的精确,后面还会介绍几个属性,并把几个属性结合在一起,生成一个接近100%的UUID。 D.android系统提供了获取android系统版本号,生产厂商,固件版本推出时间的API. E.android系统提供了当前android设备是12或24小时制显示时间的API, F.android系统提供了当前android设备的修订版本列表,显示屏,主板等等参数。 G.可以允许用户根据需求用自定义字符串去为FP做贡献,比如IP地址等 方案: 在不需要用户权限的前提下,网上最完美的方案是将android_id和硬件序列号,如果其中任意一种失效就使用另外一种。受FingerPrint2js的启发,我看了Android获取系统硬件相关的API,将所有不经常变化且能代表一定用户群体的属性都取出来进行MD5运算,包含但不限于依据中所述的信息。准确性还需进一步验证,但理论上要比FingerPrint2js准确性高,也在网上给出的比较好的方案基础上进一步缩小了FP可能重复的概率。 1.第一次进入APP时,获取系统相关配置信息生成FP,存入SP。 2.每次访问,先从SP取,没有再通过相关配置信息生成FP,存入SP。 3.封装成jar,只给用户暴露出获取ID的接口、传递自定义信息构建FP的接口以及第一次安装时间戳的接口(或设置标签调用的接口) 单纯对于FP而言,有两个主要问题需要解决,一是FP重复的问题,相同配置的新设备重复可能性极大,增多给FP贡献的因素的数量,可以有效降低重复率。二是FP改变的问题,贡献FP的生成因素的其中一个如果改变,FP就会改变。所以如果FP的贡献因素数量过多,导致FP改变的概率也就变大,所以说客户要在两者之间做一个很好的平衡。 对比: 为android FP做贡献的各配置参数:(示例以6.0的华为荣耀8为例) 1.Android_ID:Settings.System.getString(context.getContentResolver(), Settings.System.ANDROID_ID) //低版本稳定,高版本不稳定 示例:295a4fbf716094ee 2.Build.SERIAL 设备序列号(有的设备无法获取) 示例:WTK7N16923005607 3.Build.FINGERPRINT 设备指纹(同样的新设备该值应该是一样的) 示例:honor/FRD-AL00/HWFRD:6.0/HUAWEIFRD-AL00/C00B171:user/release-keys 4.Build.TIME 固件推出日期 示例:1477442228000 5.Build.VERSION.INCREMENTAL 源码控制版本号 示例: C00B171 6.Build.getRadioVersion() 获取无线电固件版本 示例:21.210.03.00.031,21.210.03.00.031 7.Build.HARDWARE 硬件名称 示例:hi3650 8.Build.VERSION.SECURITY_PATCH 用户可见安全补丁level(这里我得到的是日期,可能是补丁修复的时间)示例:2016-10-01 9.当前设备是12/24时制:Settings.System.getString(context.getContentResolver(), Settings.System.TIME_12_24) 示例:null(有的手机可以获取) 10.Build.VERSION.SDK_INT SDK版本号 (一般讲是与系统版本号一一对应的) 示例:23 11.Build.SUPPORTED_32_BIT_ABIS 支持32位ABIs的列表(数值)示例:[armeabi-v7a,armeabi] 12.Build.SUPPORTED_64_BIT_ABIS 支持64位ABIs的列表(数值)示例:[arm64-v8a] 13.Build.BOOTLOADER 系统启动程序版本号 示例:unknown 14.Build.VERSION.RELEASE 用户可见版本 示例: 6.0 16.Build.BOARD 主板 示例:FRD-AL00 17.Build.BRAND 系统定制商 示例:honor 21.Build.HOST 示例:huawei-RH2288H-V2-12L 23.Build.MANUFACTURER 产品/硬件的制造商 示例:HUAWEI 25.Build.PRODUCT 产品的名称 示例:FRD-AL00 26.Build.TAGS 描述Build的标签(Comma-separated tags describing the build, like "unsigned,debug".) 示例:release-keys 28.Build.USER 描述Build的USER 示例:jslave 31.Build.VERSION.BASE_OS 基带版本 The base OS build the product is based on. 示例:空值 32.自定义字符串或自定义数组
文章TAG:游戏无法获取设备唯一id怎么办  手机无法获取正确设备Id  游戏  无法  获取  
相关教程
猜你喜欢