1

我目前正在使用此代码:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);

if(taskInfo.get(0).topActivity.getPackageName().equalsIgnoreCase("com.android.settings")){
    ////Do Action       
}

我可以查看当前活动是否为 com.android.settings(Android 设置页面)。我正在尝试将其替换为包 com.android.setting 中的特定类文件,例如

 if(taskInfo.get(0).topActivity.getPackageName().equalsIgnoreCase("com.android.settings.LocationSettings") || taskInfo.get(0).topActivity.getPackageName().equalsIgnoreCase("com.android.settings/.LocationSettings")){
         ////Do Action

     }

我的问题是这段代码没有检测到“LocationSettings”。

我指的是 Android 源代码,这里是 Cyanogen 源代码。

4

1 回答 1

0

您正在检查的类 (com.android.settings.LocationSettings) 不是 Activity 的子类,因此它不会显示在 Activity 列表中。

另外,getPackageName() 只返回包。因此,您需要分别对照 getClassName() 检查类名。

于 2013-02-11T12:27:59.423 回答