【问题标题】:The method getAllCellInfo() is undefined for the type TelephonyManager [Android]对于 TelephonyManager [Android] 类型,方法 getAllCellInfo() 未定义
【发布时间】:2015-03-12 19:50:51
【问题描述】:

使用以下代码,我正在尝试获取可用的单元格信息:

import android.telephony.CellInfo;

TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService( context.TELEPHONY_SERVICE );
List<CellInfo> cellList = telephonyManager.getAllCellInfo();

知道方法 getAllCellInfo() 和类 CellInfo 是在 API 级别 17 中引入的,我在 AndroidManifest.xml 文件中设置了 android:minSdkVersion="17"

但是,在 Eclipse 中,我收到一条错误消息: 无法解析导入的 android.telephony.CellInfo方法 getAllCellInfo() 没有为 TelephonyManager 类型定义

我已经尝试清理、关闭 Eclipse 并重建我的项目,但我仍然收到这些错误。我不知道为什么 Eclipse 无法识别这些声明

感谢您的帮助。

编辑: 权限 android.permission.ACCESS_COARSE_LOCATION 也包含在 AndroidManifest.xml 文件中。但问题仍然存在。

【问题讨论】:

  • 你添加了权限ACCESS_COARSE_LOCATION
  • 是的,这也在 Manifest 中。我可以使用方法 telephonyManager.getNetworkOperator();这需要该权限。
  • 已解决:问题是,即使我确实编辑了 AndroidManifest.xml 文件。 project.properties 文件未更新,更改:文件中的target=android-17 解决了问题。

标签: android eclipse undefined telephonymanager cellinfo


【解决方案1】:

检查您的project.properties 文件并查看您正在构建的目标。它应该看起来像这样:

target=Google Inc.:Google APIs:17

这是我手头的一个旧项目,它是为 API 17(使用 Google API)构建的。

您还可以进入项目属性并在 UI 中检查目标。该设置对应于这个文件,是 Eclipse 用来构建的对象,而不是清单。清单在平台上运行时使用,以了解在框架中启用哪些兼容模式。

【讨论】:

  • 是的,这就是问题所在。谢谢。
  • 不客气。我会为你抛出这个:如果你使用 Android Studio,它实际上会告诉你不要将 min/target SDK 信息放在清单文件中。它使用 gradle 构建文件来了解要构建的内容,并将为您自动生成清单的该部分。有助于减少这种陌生感。
  • 感谢您的意见,我目前正在进行一个无法切换到 Android Studio 的项目。构建和部署过程涉及的太多,而且离截止日期太近,现在无法切换。
猜你喜欢
  • 1970-01-01
  • 2015-08-21
  • 2013-11-11
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多