android:检测设置(com.android.settings)是否打开

时间:2014-08-28 16:33:44

标签: android service package

我希望当用户尝试打开Settings应用或打包com.android.settingsSettings中的所有应用,如电池,wifi,声音等)时,它会显示{{1 }}。我将在Toast创建。这是我的代码:

Service

我已经在public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this, " MyService Started", Toast.LENGTH_LONG).show(); //if(Settings is open){ //Toast.makeText . . . } return START_STICKY; } 已经全部,但仍然无法正常工作。我为我的英语道歉,如果你提出解决方案,我会很高兴。谢谢。

1 个答案:

答案 0 :(得分:1)

这将获取所有当前正在运行的任务,并循环其包名称,直到找到(或不是)指定的包:

ActivityManager activityManager = (ActivityManager) 
        getSystemService(Context.ACTIVITY_SERVICE);

List<RunningTaskInfo> tasks = activityManager
        .getRunningTasks(Integer.MAX_VALUE);

for (RunningTaskInfo task : tasks) {
    if (task.baseActivity.getPackageName().equalsIgnoreCase("com.android.settings")) {
        Toast.makeText(this, " MyService Started", Toast.LENGTH_LONG).show();
    }               
}

同时将此权限添加到您的清单:

<uses-permission android:name="android.permission.GET_TASKS" />