2013-01-12 44 views
2

我正在嘗試製作一個應用程序,該應用程序會記錄設備上各種應用程序的使用情況。例如:國際足聯10分鐘,GTA 23分鐘等現在我有服務,不斷運行,我有一個廣播接收器,假設當任何應用程序包更改(使用intent.action.PACKAGE_CHANGED)時觸發,但不幸的是代碼裏面廣播從不運行。我很感激,如果有人能夠暗示這個問題,或者告訴我其他任何方式來做到這一點。由於在android中更改應用程序的監聽器

public class ScreenReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Log.d("BROADCAST", "Works fine"); 
} 

}

,這是服務類中的代碼:當應用程序iteself改變

public int onStartCommand(Intent intent, int flags, int startId) { 
    IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_CHANGED); 
    ScreenReceiver recevier = new ScreenReceiver(); 
    registerReceiver(recevier, filter);runningApps(); 

    return START_STICKY; 
} 

回答

1

PACKAGE_CHANGED意圖只會被髮送。它與應用程序的使用無關。

實際上,沒有官方的方式來監控應用的使用情況。只有類似的解決方案:

  1. 高達果凍豆,你可以讀取日誌,並找出當一個應用程序的進程已經開始,當它關閉(或用戶移動到另一個應用程序)。

  2. 您可以隨時詢問最近啓動的應用程序或當前正在運行的進程。

  3. 您可以創建一個啓動器應用程序,該應用程序將查明在其中啓動了哪些應用程序。

當然

,每一個我寫的方法有其缺陷,並只給你一個關於實際使用的線索,由於在同一時間運行多個應用程序,我不Android支持,當然認爲任何方法都行不通。

相關問題