android获取应用安装通知消息,如何在Android 11 上获取已安装应用列表
在Android 11上,我們可以看到很多的更新都是用來保護(hù)隱私的,如果你的app 在使用PackageManger的方法來獲取安裝的應(yīng)用列表,
那么在Android11上,就需要做一點(diǎn)改變了。
我們來看看一下獲取應(yīng)用列表的代碼,會不會和你的很相似
List allApps = getPackageManager().getInstalledApplications(0);
for(ApplicationInfo ai : allApps) {
Log.d("packageName", ai.packageName);
}
復(fù)制代碼
現(xiàn)在你是在11上使用,代碼即使一樣,除非你在AndroidManifest.xml中添加代碼,否則是不會生效的。
這里有3種不同的方法去查詢已經(jīng)安裝的app,讓我們瞧瞧
包名查詢
如果你已經(jīng)知道想查詢的應(yīng)用包名,那么你可以這樣做
xmlns:tools="http://schemas.android.com/tools"
package="com.blowing.demo"
復(fù)制代碼
通過intent filter查詢
如果你不知道應(yīng)用的包名,只是想查詢具有某種功能的應(yīng)用,那么可以使用以下的方式
xmlns:tools="http://schemas.android.com/tools"
package="com.blowing.demo"
復(fù)制代碼
這里需要注意的是:
中只能有一個(gè) 元素
中也只能有這些屬性: mimeType,scheme 和host
查詢所有的應(yīng)用
11上添加了一個(gè)QUERY_ALL_PACKAGES這樣的權(quán)限,我們配置上就ok了
復(fù)制代碼
如果我們使用android.intent.action.MAIN 作為action元素,那么不添加權(quán)限,也是可以繞過去的,因?yàn)閹缀跛袘?yīng)用都會有這個(gè)action。不知道這個(gè)算不算是bug了。
總結(jié)
以上是生活随笔為你收集整理的android获取应用安装通知消息,如何在Android 11 上获取已安装应用列表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: realme真我GT5 手机亮相:采用奇
- 下一篇: 反射获取list泛型_Android 从