TELEPHONY_SERVICE常量在一个类中未被识别,但在另一个类中

时间:2011-01-24 10:09:23

标签: java android

这非常像另一种看不到树林的情况。

我为我的应用编写了一个小的(非扩展)类,目前只包含一个方法来抓取提供的URL并返回一个字符串。我希望在查询字符串的末尾包含设备ID,因此添加了以下行:

import android.telephony.TelephonyManager;
import android.content.Context;
...
TelephonyManager m_tmgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

然而,根据Eclipse,TELEPHONY_SERVICE常量“无法解析为变量”。如果我将这些行复制并粘贴到包中的另一个类中(所有其他类都是活动,此刻可能与它有关?),一切正常。

我错过了哪些非常明显的事情?

5 个答案:

答案 0 :(得分:6)

TELEPHONY_SERVICE是Context类的成员,它是Activity类的超类。所以这个常量只在Activity或Context子类中可用。

http://developer.android.com/reference/android/content/Context.html#TELEPHONY_SERVICE

您可以访问Context.TELEPHONY_SERVICE

答案 1 :(得分:1)

我发现代码中的小修正如下:


只需更改


TelephonyManager m_tmgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);


 TelephonyManager m_tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

答案 2 :(得分:0)

似乎你已经静态导入了常量。请找到以import static开头的行并将其复制到另一个班级。更多here

答案 3 :(得分:0)

替换

import android.content.Context;

通过

import static android.content.Context.*;

答案 4 :(得分:0)

使用此:

TelephonyManager tManager = (TelephonyManager) 
    getActivity().getSystemService(Context.TELEPHONY_SERVICE);