2014-08-28 110 views
0

我想要當用戶嘗試打開Settings應用程序或包com.android.settings(所有應用程序在Settings像電池,wifi,聲音等),它會顯示Toast 。我將在Service中創建。這裏是我的代碼:android:檢測設置(com.android.settings)是否打開

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; 
} 

我已經全部在stackoverflow,但仍然無法正常工作。我爲我的英語道歉,如果你提出解決方案,我會很高興。謝謝。 。

回答

0

,直到你指定的包被找到(或沒有),這將讓所有當前正在運行的任務和循環他們的包名:

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" /> 
+0

很好。 。有用。 Thx兄弟,你救了我的生命 – dtnder 2014-08-28 16:51:15

+0

對不起,但爲什麼總是顯示'吐司'。我只是想當用戶點擊「設置」或「Wifi」。 。 – dtnder 2014-08-28 17:15:27

+0

@dtnder它顯示了設置包啓動時的敬酒,就像你問的那樣。 – Simas 2014-08-28 17:17:16