作者簡介 原創(chuàng)微信公眾號郭霖 WeChat ID: guolin_blog
大家早上好任连,新的一周開始啦!
本篇是Othershe的第三篇投稿嘁捷,帶了權(quán)限?android.permission.PACKAGE_USAGE_STATS 的使用講解,希望能夠幫助到大家址否。
Othershe的博客地址:
http://www.reibang.com/u/4235f2b5b350
正文
什么是使用記錄訪問權(quán)限呢局蚀?這是在 Android5.0 新添加的麦锯,通過該權(quán)限我們可以查看設(shè)備上其它應(yīng)用使用情況的統(tǒng)計(jì)信息等。如何使用該權(quán)限呢琅绅?
首先在 manifest 中添加:
由于該權(quán)限默認(rèn)只授予系統(tǒng)應(yīng)用扶欣,所以添加了ignore屬性。然后通過如下代碼進(jìn)而手動打開權(quán)限:
當(dāng)然只要我們在manifest中進(jìn)行了權(quán)限配置千扶,也可以通過設(shè)置->安全->有權(quán)查看使用情況的應(yīng)用來打開權(quán)限:
到此我們的應(yīng)用就擁有了該權(quán)限料祠。那么有了這個(gè)權(quán)限到底能做什么呢?繼續(xù)往下看...
前段時(shí)間和同事聊到了一個(gè)叫我要當(dāng)學(xué)霸的app澎羞,里邊有個(gè)學(xué)習(xí)監(jiān)督的功能术陶,就需要使用記錄訪問權(quán)限,當(dāng)打開權(quán)限后煤痕,除了自己和桌面外,其它app都不能正常使用接谨,點(diǎn)擊其它app時(shí)會直接退到后臺并彈出一個(gè)提示頁面摆碉。不妨我們來模擬下這個(gè)功能。
在這之前我們首先看一個(gè)類?UsageStatsManager:
可以看到該類提供了五種時(shí)間間隔類型脓豪,這里我們比較關(guān)注?queryUsageStats()?方法巷帝,通過該方法我們可以得到一段時(shí)間內(nèi)其它應(yīng)用的使用情況。
我們實(shí)現(xiàn)思路是這樣的扫夜,通過 UsageStatsManager類 獲得2秒內(nèi)手機(jī)app的使用數(shù)據(jù)楞泼,找到時(shí)間最近的一個(gè),如果不是我們自己的app或桌面則模擬home鍵點(diǎn)擊笤闯,同時(shí)彈出一個(gè)提示頁面堕阔,具體的代碼如下:
因?yàn)闀r(shí)間周期是2秒,所以這里我們采用?INTERVAL_BEST?作為時(shí)間間隔颗味。其中的UsageStats?對象對應(yīng)一個(gè)查詢到的app數(shù)據(jù)超陆,主要包含以下信息:
getTopApp()?是我們的核心方法,當(dāng)然我們需要開啟一個(gè)服務(wù)浦马,然后在服務(wù)中每隔500毫秒執(zhí)行一次上邊的方法时呀,這樣就能起到不斷檢測的作用:
打開權(quán)限、啟動服務(wù)晶默,可以看到實(shí)際的運(yùn)行效果如下谨娜,基本符合我們的預(yù)期。
類似的道理磺陡,我們也可以判斷某個(gè)app是否在前臺運(yùn)行趴梢。
上邊我們使用了INTERVAL_BEST?時(shí)間間隔類型漠畜,還可以使用其它4個(gè),例如使用INTERVAL_YEARLY:
上邊的代碼我們最終獲得了過去一年手機(jī)上使用過的app的包名集合(其中包括系統(tǒng)級別的):
拿到這些包名可以做什么呢垢油?
其實(shí)對于網(wǎng)賺類型的應(yīng)用有這樣一種業(yè)務(wù)場景盆驹,就是用戶通過下載app來做任務(wù)進(jìn)而賺取收益,但是如果當(dāng)前設(shè)備通過其它網(wǎng)賺應(yīng)用已經(jīng)下載過某個(gè)app滩愁,然后卸載了躯喇,再通過你的網(wǎng)賺應(yīng)用下載。如果你不知道用戶之前安裝過該app硝枉,就需要給用戶結(jié)算相應(yīng)的收益廉丽,但是你的上游渠道是不會給你結(jié)算的,因?yàn)檫@屬于同一設(shè)備上的重復(fù)下載妻味,這樣對公司而言就是虧損的正压。
有了歷史包名信息,我們就可以判斷用戶在一定的時(shí)間周期內(nèi)是否安裝過對應(yīng)的app责球,進(jìn)而采取相應(yīng)的策略焦履,這樣可以在一定程度降低損失。當(dāng)然有個(gè)前提雏逾,你要友好的引導(dǎo)用戶開啟權(quán)限嘉裤。
先到這里吧,更多的用法還有待進(jìn)一步探究栖博。
Demo地址:
http://download.csdn.net/download/shehuan320_/9760025
文章原創(chuàng)作者GuoLin 書籍推薦
郭林大神原創(chuàng)android 書籍:《第一行代碼 android》