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 去把設定的畫面叫起來,叫使用者打勾。使用者不打勾,你還是抓不到資料的。



沒有留言:

張貼留言

中國 App 商業模式 -- 王泌

很有系統地介紹了中國近幾年比較大的幾十個 app,包含他們主要的商業模式,投資者,和特色在哪裡。對於想要了解中國 App (網路服務) 市場的人來說,會是個很好的入門書。雖然已經是兩三年前的資料了,這兩三年又有了很大的變化,但依然是個很好的起點。