我需要android.os.Build
类的固定属性列表。我已经从here获得了列表,我把那些我认识的那些大胆修复了。通过修复我的意思是没有固件更新,重置工厂,...
android.os.Build.VERSION.RELEASE //当前的开发 代号,或者字符串“REL”,如果这是一个发布版本。
android.os.Build.BOARD //底层牌的名称,如“goldfish”。
android.os.Build.BOOTLOADER //系统引导加载程序 版本号。
android.os.Build.BRAND //软件定制的品牌(例如运营商),如果有的话。
android.os.Build.CPU_ABI //本机代码的指令集名称(CPU类型+ ABI约定)。
android.os.Build.CPU_ABI2 //本机代码的第二个指令集(CPU类型+ ABI约定)的名称。
android.os.Build.DEVICE //工业品外观设计的名称。
android.os.Build.DISPLAY //用于向用户显示的构建ID字符串
android.os.Build.FINGERPRINT //唯一的字符串 识别这个版本。
android.os.Build.HARDWARE //硬件名称(来自内核命令行或/ proc)。
android.os.Build.HOST
android.os.Build.ID //更改列表编号, 或者像“M4-rc20”这样的标签。
android.os.Build.MANUFACTURER //产品/硬件的制造商。
android.os.Build.MODEL //最终产品的最终用户可见名称。
android.os.Build.PRODUCT //整体产品的名称。
android.os.Build.TAGS //以逗号分隔的标签 描述构建,如“unsigned,debug”。
android.os.Build.TYPE //构建类型,如 “user”或“eng”。
android.os.Build.USER
请帮我填写清单
答案 0 :(得分:13)
如果查看the source code to Build
,您会看到所有这些值 - 包括粗体中的值 - 都来自系统属性文件。因此,ROM修改器或原始设备制造商可以根据需要修改这些值中的任何一个。
答案 1 :(得分:2)
我不会用Build
的一致性来解决困境,因为马克已经说明了为什么没有保证答案。相反,我想回应你的目的和意图。
如果我理解正确,您正在尝试唯一标识单个设备。我首先指出this answer,您可以简单地断定通用解决方案是不可能的。重置出厂默认设置或切换SIM卡(如果设备有一个)将更改任何类型的唯一ID并欺骗您的应用程序,使其认为是不同的用户。
你需要重新思考你想要完成的事情。为什么需要唯一标识设备?如果您正在尝试识别用户,那么这种思维模式也无法应对多个设备。现在,Jellybean 4.2就是这种情况,设备可能支持多个用户。另请参阅this insightful blog post on the Android Developers Blog。
您可以让用户附加他的Google帐户吗?或者说明你自己的服务?如果您可以识别用户,则可以通过UUID.randomUUID()
识别单个设备。
答案 2 :(得分:1)
如果我理解正确(关于您的后续评论),您希望在不集成某种注册或登录机制的情况下识别设备。
我建议不要实现自己的ID计算算法,而是建议使用Android的OpenUDID实现(参见https://github.com/vieux/OpenUDID)。