📜  无法解析广播类中的方法“getSystemService” (1)

📅  最后修改于: 2023-12-03 15:40:08.328000             🧑  作者: Mango

无法解析广播类中的方法“getSystemService”

在Android开发中,我们经常会使用广播来实现组件之间的通信。但是有时候在广播接收者类中调用getSystemService方法时会出现无法解析的错误,如下所示:

error: cannot find symbol method getSystemService(String)

这是因为广播接收者类并不直接继承Context类,而getSystemService方法是Context类中的方法。

要解决这个问题,我们可以通过传递Context对象引用到广播接收者中来解决。具体地,我们可以在onReceive方法中获取Context对象,然后使用该对象调用getSystemService方法,如下所示:

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 获取Context对象
        Context appContext = context.getApplicationContext();
        
        // 使用Context对象调用getSystemService方法
        TelephonyManager teleManager = 
            (TelephonyManager) appContext.getSystemService(Context.TELEPHONY_SERVICE);
    }
}

我们首先通过getApplicationContext方法获取Context对象,然后使用获取到的Context对象调用getSystemService方法,得到需要的系统服务。

总之,要解决"无法解析广播类中的方法“getSystemService”"的问题,我们需要引入Context对象,并使用该对象来调用getSystemService方法。