放送受信機内から、現在実行されている他のアクティビティを確認したいと思います。これは、他の実行中のアクティビティを見つけるためにアクティビティから使用するコードですが、ブロードキャストレシーバーでこのコードを使用しようとすると、次の行でエラーが発生します。
ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
Eclipseのエラーを示していますACTIVITY_SERVICEは変数に解決できません
PackageManager pm = this.getPackageManager();
これはEclipseのエラーを示しています。メソッドgetPackageManager()は、タイプScreenReceiver(私のブロードキャストレシーバー)に対して未定義です。
完全なコードは次のとおりです。
public void getRunning(){
ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
List l = am.getRunningAppProcesses();
Iterator i = l.iterator();
PackageManager pm = this.getPackageManager();
while(i.hasNext()) {
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
try {
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
Log.w("LABEL", c.toString());
runningApplications.add(c.toString());
}catch(Exception e) {
//Name Not Found Exception
}
}
}