BroadcastReceiver를 공부중입니다..그런데
--PSReeiver.java--
,,,
import android.telephony.TelephonyManager;
import android.util.Log;
import com.android.internal.telephony.ITelephony;
...
public class PSReceiver extends BroadcastReceiver {
public void onReceive(Context context, final Intent intent) {
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appList = am.getRunningAppProcesses();
telManager.listen(new PhoneStateListener(){
public void onCallStateChanged(int state, String inNumber){
여기에 ActivityManager am 을 쓰면 am 을 선언하라고 나옵니다 ;;;(선언위에 했는데..)
그래서 다시
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
이거를 또 서주면 context를 선언해줘라 나옵니다 ;;(위에 Context context로 받아오는데...)
혹시 어떤식으로 context를 받아와야 하는지 아시면 알려주세요....
}
}
방법1. onReceive 의 메서드에서 넘어오는 context 값을 상수로 매칭시켜주시고 이 상수를 활용하는 방법
public void onReceive(Context context, final Intent intent) {
final Context nContext = context; // nContext 활용합니다
...
}
방법2. getApplicationContext() 메서드가 이름 그대로 application 의 최상위 context 를 지니고 있습니다. 이를 사용하셔도 됩니다.
(ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);