2016-07-07 14 views
0

Ich entwickle eine App, die die Nutzung des GPS verfolgt (nicht nur, wenn das GPS ein-/ausgeschaltet wurde, sondern auch die Standortanforderungen).App-Name erhalten, der eine Absicht ausstrahlt

Nach einer Recherche finde ich heraus, dass ich dies mit dem folgenden Code in meinem Manifest archivieren kann.

Dies funktioniert, jedes Mal, wenn eine App die GPS-Koordinaten anfordert, wird meine TriggerGPS-Klasse aufgerufen.

public class TriggerGPS extends BroadcastReceiver { 

    Calendar c = Calendar.getInstance(); 

    @Override 
    public void onReceive(Context context, Intent intent) { 

      String currentDatetime = c.get(Calendar.DAY_OF_MONTH) + "/" + c.get(Calendar.MONTH) + "/" + 
        c.get(Calendar.YEAR) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" + 
        c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND); 

      Log.d("---------log--------", "Intent (" + intent.getAction() + ") GPS Status onReceive : " + currentDatetime); 
    } 
} 

Aber meine app sollte einen Bericht anzeigt, jede App erstellen wird mit dem GPS und wie oft verwendet die App die GPS zu bekommen de pro Tag koordiniert.

Das Problem hier ist, dass ich nicht herausfinden kann, wie man den App-Namen erhält, der das Ereignis ausstrahlte.

Es gibt eine Möglichkeit, das zu tun?

Danke euch allen.

Antwort

1

Das Problem hier ist, dass ich nicht herausfinden kann, wie man den App-Namen erhält, der das Ereignis ausstrahlt.

Apps senden nicht das Intent. Das System sendet das Intent. Sie haben keine Möglichkeit festzustellen, warum der Benutzer seine Geräteeinstellungen geändert hat, um einen Standortanbieter zu aktivieren oder zu deaktivieren. Schließlich muss es keinen bestimmten App-basierten Grund geben. Der Benutzer könnte einfach wählen, auf die Kachel im Benachrichtigungsschirm zu tippen, in Einstellungen zu gehen und den Provider-Status umzuschalten oder den Status nur für Gekicher zu ändern.

+0

Aber diese empfangen "android.location.GPS_ENABLED_CHANGE" verfolgt nicht den Status der Änderung des GPS zwischen Ein/Aus. Es verfolgt die Anfrage nach den GPS-Koordinaten. –

+0

Aber ich verstehe, was Sie gesagt haben. Danke für deine Hilfe! : D –

+0

Ich habe verstanden. Ein anderer, den ich gefunden habe zu wissen, dass das GPS von einer App (jede App) verwendet wurde, war der PASSIVE_PROVIDER. https://developer.android.com/reference/android/location/LocationManager.html#PASSIVE_PROVIDER –