2011-08-19 160 views
6

如您所知,撥打* # * # 4 6 3 6 # * # *時出現測試菜單。閱讀應用程序使用信息

在此菜單上,選擇>應用程序統計信息以讀取應用程序使用時間和午餐計數。

我想構建一個使用此信息的智能啓動器。

任何人都可以指向一個實現閱讀這些信息的源代碼嗎?

+0

+1爲隱藏測試菜單:) – OcuS

+0

@OcuS:它不是測試菜單,「4636」讀取手機鍵盤上的「INFO」。 – lenik

+0

在Samsung Galaxy S7上不適用於我。適用於Nexus 5X。當N5X在7.1.2上時,S7是否在7.0上,這是否是最近的一項功能? – Eselfar

回答

0

這個菜單源可以設置應用程序內的https://android.googlesource.com/platform/packages/apps/Settings

發現如果你在logcat中看看,你會看到THT進入該USSD代碼產生一個意向點火:

啓動活動:意向{行動= android.intent.action.MAIN FLG = 0x10000000的CMP = com.android.settings/.TestingSettings}

這基本上只是一個普通的活動推出,僅針對非發射活動。您可以從程序中激發該意圖,或者讓程序撥打ussd代碼。

試圖抓取程序中使用的數據將是困難的。設置應用程序在「系統」uid下運行,並且能夠聲明第三方應用程序無法提供的許多權限。那些涉及更改設置的人幾乎完全受到限制,即使是相當數量的讀取權限也是如此。

通過設置應用程序的源代碼,您將能夠看到它是如何做的;查看AndroidManifest.xml將顯示它使用的是什麼權限 - 不幸的是,您可能想要做的大部分操作都可能需要列表中的某些內容,而這些內容是您的應用程序無法獲取的。

+0

謝謝!所以我基本上需要做的是構建一個服務,記錄應用程序的午餐以便自己收集這些信息?任何人都可以推薦和實現這個的源代碼示例? – Karako2017

+0

@VadimKotov如果你要堅持編輯舊的,過時的答案,儘管我明確要求你不這樣做,請*至少*保持原始格式。我非常特別地在主體中顯示鏈接目標,以便人們知道他們要去哪裏 - 在很多方面,瞭解代碼在android源代碼層次結構中的位置是鏈接中最有用的部分,而不管它們是工作還是死。再次,我寧願你沒有在主頁上通過修改它們而不必要的改變它們,但是至少保持源層次結構可見的原意。 –

+0

@ChrisStratton ok,會做到這一點 –