这非常像另一种看不到树林的情况。
我为我的应用编写了一个小的(非扩展)类,目前只包含一个方法来抓取提供的URL并返回一个字符串。我希望在查询字符串的末尾包含设备ID,因此添加了以下行:
import android.telephony.TelephonyManager;
import android.content.Context;
...
TelephonyManager m_tmgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
然而,根据Eclipse,TELEPHONY_SERVICE常量“无法解析为变量”。如果我将这些行复制并粘贴到包中的另一个类中(所有其他类都是活动,此刻可能与它有关?),一切正常。
我错过了哪些非常明显的事情?
答案 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);