2016-07-07 117 views
0

我正在開發一個跟蹤GPS使用情況的應用程序(不僅在GPS開啓/關閉但位置請求時)。獲取廣播意圖的應用程序名稱

經過研究,我發現我可以通過在我的清單中使用以下代碼來對其進行歸檔。

<receiver android:name=".triggers.TriggerGPS"> 
    <intent-filter> 
     <action android:name="android.location.GPS_ENABLED_CHANGE" /> 
    </intent-filter> 
</receiver> 

這是工作,每次應用程序請求GPS座標我的TriggerGPS類被調用。

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

但我的應用程序應該創建一個報告,說明各應用程序使用GPS和多少次的應用程序使用的GPS獲得德每天座標。

這裏的問題是,我無法弄清楚如何獲取廣播事件的應用程序名稱。

有什麼辦法可以做到這一點?

謝謝大家。

回答

1

這裏的問題是,我無法弄清楚如何獲取廣播事件的應用程序名稱。

應用程序不會廣播那個Intent。系統廣播Intent。您無法確定用戶更改其設備設置以啓用或禁用位置提供商的原因。畢竟,不一定要有一個特定的應用驅動的原因。用戶可以簡單地選擇在通知窗口中點擊圖塊,進入設置並切換提供者狀態,或者改變狀態以適應咯咯笑聲。

+0

但是,這個接收「android.location.GPS_ENABLED_CHANGE」沒有跟蹤開/關之間的GPS的變化狀態。它正在跟蹤GPS座標的請求。 –

+0

但我明白你的意思。謝謝你的幫助! :D –

+0

我明白了。另一個,我發現知道GPS應用程序(任何應用程序)使用的是使用PASSIVE_PROVIDER。 https://developer.android.com/reference/android/location/LocationManager.html#PASSIVE_PROVIDER –

相關問題