Java APK非静态用法

时间:2017-07-25 14:01:29

标签: java android

我正在尝试从这里Android: TelephonyManager class来回答同一问题的答案,但是当我按照建议做的时候,我无法在静态上下文中使用getSystem服务。我如何在非静态上下文中执行此操作

public class MainActivity extends Activity {
    @Override
    @TargetApi(26)

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView text = new TextView(this);
        TelephonyManager device = Context.getSystemService(Context.TELEPHONY_SERVICE);
        String IMEI = device.getImei();
我认为我能做到

TelephonyManager device = new TelephonyManager(Context.getSystemService(Context.TELEPHONY_SERVICE));

但是没有用,我仍然无法在静态上下文错误中使用getSystemService'。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如您在关联的问题中所述,隐藏了TelephonyManager的构造函数。这是因为整个手机共享一个TelephonyManager(正如人们所期望的那样 - 一次有多个应用程序可以使用手机?)。要检索TelephonyManager,您需要从您的应用程序Context请求它。

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