2015/09/27

How to detect foreground process name in Android with Lollipop

(Katwijk.Holland)

Android 一直改版,原本可以用的功能,因為安全性,因為有的 app 會亂搞,所以把許多流程和功能不是改得變複雜,就是直接拿掉了。

原本一個很單純的抓取前景正在執行的程式名稱的功能,也變得愈來愈複雜。之前只需要抓一下getRunningTasks() 就可以找到想要的結果,但是現在得要為 application 加上新的 permission PACKAGE_USAGE_STATS,然後還要要求使用者進到 Settings > Security > User Apps with access to usage data , 勾選該 application 後才可以。

這種小功能還需要使用者大費周章的做一堆事,實在是很麻煩。

下面的程式碼,是透過 user stats去取得這資料。另外,如果使用者還沒有在 Settings 中勾選 app 的話,出來的 runningTask 會是空的,這時應該要用程式碼中最下面的 startActivity 去把設定的畫面叫起來,叫使用者打勾。使用者不打勾,你還是抓不到資料的。



No comments:

Post a Comment

Talk to Me in Korean Level 7 快速複習

第一課 -(는)구나 / -(는)군요 啊~原來~ (現在才了解/意識到~ 여기 있었어요. = 在這兒 (존댓말) 여기 있었군요. = 啊,我現在才知道在這兒 (반말) 여기 있었구나. 생각보다 비싸요. = 比我想的貴 (존댓말) 생각보다 비싸군요. =...