0

我想检查我的设备是否配备了无线电硬件。

我如何获得这些信息?

我使用Build类来获取无线电信息。却撞车了。

public final String SUPPORT = "Support";
public final String NOT_SUPPORT = "None";

public String checkRadio() {
    // Radio hardware has or not?

    if (Build.getRadioVersion() != null) {
        return SUPPORT;
    } else {
        return NOT_SUPPORT;
    }
}

错误:

08-22 15:49:46.662: E/AndroidRuntime(643): java.lang.NoSuchMethodError: android.os.Build.getRadioVersion
08-22 15:49:46.662: E/AndroidRuntime(643):  at com.mobilegenbg.deviceinfo.MainActivity.checkRadio(MainActivity.java:79)

重要提示:不推荐使用 Build.Radio。

反正?

4

1 回答 1

3

那已被弃用。

您应该考虑再次阅读文档,特别是这部分:

此字段在 API 级别 14 中已弃用。初始化此类时,无线电固件版本通常不可用,从而导致此字符串为空白或“未知”值。请改用 getRadioVersion()。

还:

getRadioVersion适用于 API 14 及更高版本,它可能会按照以下方式返回 null:

公共静态字符串 getRadioVersion ()

在 API 级别 14 中添加返回无线电固件的版本字符串。可能返回 null(例如,如果收音机当前未打开)。

强调我的,除非您在旧版本的 Android 上运行代码?

或者设备处于飞行模式或在模拟器上运行?

编辑

如果getRadioVersion()调用返回一个非空字符串,它可能是“未知的”,但至少没有返回空值(将它包装在一个 try/catchNullException块中!)。

这取决于无线电固件和 ROM,有些可能有 中指定的build.prop,有些可能没有。在这种情况下,没有它会产生“未知”。使用此调用是不可靠的,因为它因制造商而异,并且取决于 ROM。

于 2013-08-22T10:07:24.457 回答