2011-03-04 76 views
0

我正在開發一個非常簡單的GUI開發一個服務,在後臺運行的電話應用程序的過程。Android服務+ BroadcastReceiver,PhoneStateListener

該服務將負責在本地數據庫上記錄數據。據報道,這些數據與Android API允許我獲得的用戶操作有關。

這與用戶接受/拒絕來電時的不同之處在於,用戶是否處於靜音狀態, 用戶的位置等。

另一件事可能是當用戶把他們的手機上充電,開機畫面關閉,訪問的應用程序,聽音樂的時候,用相機等

我不感興趣的數據他們正在使用而不是他們正在做的動作。

我發現了一些相關的類是BroadcastReceiver和另一個PhoneStateListener,但我無法在我的服務中使用它們。

我有一個類(RecordEvents),它擴展了BraodcastReceiver並通過檢查不同的動作(intent.getAction())來實現onReceive方法。如果它是我感興趣的其中一個,我使用Log記錄它。一世()。我實例化了RecordEvents,並在onCreate方法中調用了registerReceiver(recordEvents,filter),recordEvents是RecordEvents的一個實例,Filter是一個IntentFilter,與所有的IntentFilter一起使用我感興趣的意圖操作。

現在,如果我在模擬器/手機上執行了任何我感興趣的操作,則日誌貓上不會顯示任何打印消息。

我在做一些完全錯誤的事情嗎?

BroadcastReceiver是一個正在研究的用於在後臺數據庫中記錄用戶操作的類嗎?

我還使用另一個類(PhoneEvents)延伸PhoneStateListener覆蓋onCellLocationChanged,onDataActivity,onCallStateChanged這個類實例化,並使用TelephonyManager.listen(phoneEvents,PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener。 LISTEN_CALL_STATE);

那樣。

當我在設備上安裝應用程序時,仍然沒有記錄日誌。

我很感謝您的回答。

感謝, 安德烈亞斯

回答

0

我不知道,但爲什麼您使用動態登記,而不是靜態的?只需在清單中註冊接收器並綁定到服務onReceive()。可能會解決你的問題。