来自非Activity类的getSystemService

时间:2014-09-14 01:49:49

标签: android android-activity

我需要在我的Android应用程序中获取LAC和Cid代码。但是,我需要在not-Activity类中进行。我发现的代码是:

TelephonyManager telephonyManager =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation cellLocation = (GsmCellLocation) telephonyManager.getCellLocation();
int cid = cellLocation.getCid();
int lac = cellLocation.getLac();

但是,方法setSystemService仅存在于Activity类中,我还没有找到要发送的东西"某种活动"上课。 有没有办法这样做,没有活动?

2 个答案:

答案 0 :(得分:3)

您可以将context作为参数传递给班级的constructor。在constructor内,您可以初始化TelephonyManager

示例:

在课堂上,

public class MyClass {

private TelephonyManager mTelephonyManager;

public MyClass(Context context) {
    mTelephonyManager =(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
}

}

在活动中,

public class MyActivity extends Activity {

....

//Initializing class
MyClass myClass = new MyClass(this);

..

答案 1 :(得分:0)

您只需传递一个Context对象即可从中调用getSystemService()。您还可以使用Activity对象Activity扩展Context

然后只需致电context.getSystemService()