我希望当用户尝试打开Settings
应用或打包com.android.settings
(Settings
中的所有应用,如电池,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;
}
已经全部,但仍然无法正常工作。我为我的英语道歉,如果你提出解决方案,我会很高兴。谢谢。
答案 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" />