如何在Application类中访问getSystemService

时间:2014-03-27 21:35:40

标签: android

我想访问Application类中的TELEPHONY_SERVICE系统服务,但是当我运行它时我的应用程序崩溃了。

public class SimpleDhtApplication extends Application {


    TelephonyManager tel = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
    String portStr = tel.getLine1Number().substring(tel.getLine1Number().length() -4);
    final String myPort = String.valueOf((Integer.parseInt(portStr) * 2));
}

我认为我没有正确访问上下文,有人可以帮忙!

1 个答案:

答案 0 :(得分:3)

首先覆盖Application类的onCreate方法。在onCreate中,输入你拥有的代码,如下所示:

public class SimpleDhtApplication extends Application {


    @Override
    public void onCreate() {
        super.onCreate();
        TelephonyManager tel = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
        String portStr = tel.getLine1Number().substring(tel.getLine1Number().length() -4);
        final String myPort = String.valueOf((Integer.parseInt(portStr) * 2));
    }
}

更新:注意tel.getLine1Number();如here所述,它可能会返回null。