2016-03-24 5 views
1

Ich versuche, eine App für Android zu entwickeln, die nur eine Toast-Nachricht mit dem Hinweis "WhatsApp läuft" zeigt, wenn Benutzer die WhatsApp-Anwendung geöffnet.Wie getRunningAppProcesses() funktioniert in Android L und höher

Ich verwende den folgenden Code, um die Arbeit zu erledigen, aber es funktioniert nicht. Gibt es einen Weg, um es auf allen Geräten einschließlich Android L und M

Ich habe viel für einen Tag gesucht und kann keine richtige Antwort bekommen.

public void WhatsApp() { 

     final String str = ""; 
     int whatsapplaunched = 0; 
     int whatsappclosed =0; 
     int whatsapplaunches = 1; 

     ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
     List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); 

     for (ActivityManager.RunningAppProcessInfo appProcess: runningAppProcessInfo) { 
      Log.d(appProcess.processName.toString(),"is running"); 
      if (appProcess.processName.equals("com.whatsapp")) { 
       if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND){ 
        if (whatsapplaunched == 0){ 
         whatsapplaunched = 1; 
         Log.d(str,"WhatsApp has been launched"); 
         Toast.makeText(getApplicationContext(), "WhatsApp is running", Toast.LENGTH_LONG).show(); 
        } // Last If Ends 
        else if (whatsappclosed == 1){ 
         whatsapplaunches++; 
         whatsappclosed = 0; 
         Log.d(String.valueOf(whatsapplaunches),"counter"); 
        } // Else If Ends 
       } // 2 IF Ends 
       else { 
        whatsappclosed = 1; 
        Log.d(str,"WhatsApp has been closed"); 
       } // Else Ends 
      } // Main If Ends 
     } // For Ends 
} 

Vielen Dank im Voraus

Antwort

0

Sie diesen Code

ActivityManager manager=(ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); 
    List<ActivityManager.RunningAppProcessInfo> processes=manager.getRunningAppProcesses(); 
    int i=0; 
    for(ActivityManager.RunningAppProcessInfo process:processes) 
    { 
     if(process.processName.contains("com.whatsapp")) 
       { 
        Toast.makeText(getBaseContext(), "Whatsapp running", Toast.LENGTH_SHORT).show(); 
       } 
       break; 
    } 
+0

nicht funktioniert, würde ich in einem offenkundigen alle Berechtigungen hinzuzufügen versuchen können? – Ramesh

+1

Es funktioniert in Kitkat ... Ich muss es auf Android L und höher arbeiten – Ramesh

+0

das ist Arbeit perfact in meiner App – vishal

Verwandte Themen