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