java - Marshmallow 上的 getSerial() 方法

标签 java android serial-number

我是 Java 和 android 的新手,我基本上需要从我的设备中检索硬件序列号。 我尝试了以下方法:

import android.content.*; 
import android.os.Build;
public static String recup_android()
{
String androidid;
String SerialNumber;
androidid=android.os.Build.MODEL;
SerialNumber=android.os.Build.getserial;
return SerialNumber;
}

我遇到了以下错误: java:40: 错误: 找不到符号

    SerialNumber=android.os.Build.getserial;
                                 ^

符号:变量getserial 位置:类构建 1 个错误 :compileDebugJavaWithJavac 失败

我错过了什么? 如果我返回 androidid (MODEL),它就可以正常工作。 也许与类声明有关??

在此先感谢您的宝贵帮助 埃利

最佳答案

您没有正确使用 getSerial。它是一种不变的方法,可从 API 26 或更高版本获得。对于旧版本,使用 Build.SERIAL

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 
{
    // Todo Don't forget to ask the permission
    SerialNumber = Build.getSerial();
}
else
{
    SerialNumber = Build.SERIAL;    
}

在调用 getSerial() 之前,请确保您拥有 READ_PHONE_STATE 权限。否则您的应用将崩溃。

检查 this tutorial请求权限。

关于java - Marshmallow 上的 getSerial() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390216/

相关文章:

Android FaceDetector.Face Euler 角度一直为0

algorithm - 首先检查 iPad 序列号是否正确

c++ - 如何以编程方式在 Bada 中获取 MEID/ESN?

java - 如何停止使用@Scheduled注释启动的计划任务?

java - 在 Typescript 中导入 Java 对象

java - 如何将 Spinner 中的数据转换为 API 可以使用的格式?

android - 如何更改工具栏中的标题位置?

c++ - 从/dev/sd* 元素获取/dev/disk/by-id 元素

java - ProducerTemplate 无法将Body 发送到Direct Endpoint

java - 使用多列的参数化 IN 子句