显示安卓手机中安装的所有消息传递应用程序



我想在手机中显示用户安装的所有消息传递应用程序。我期待的列表是WhatsApp,Facebook messenger,Viber,Slack,Skype,微信等(如果安装了任何内容(。因此,到目前为止,我已经尝试通过以下代码获取Phone中的所有应用程序:

val pm: PackageManager = context!!.packageManager
val i = Intent(Intent.ACTION_MAIN)
i.addCategory(Intent.CATEGORY_LAUNCHER)
val lst = pm.queryIntentActivities(i, 0)
for (resolveInfo in lst) {
Log.d(
"Test",
"New Launcher Found: " + resolveInfo.activityInfo.packageName
)

这只给了我 Slack 应用程序,而不是其他消息传递应用程序。我有一种感觉,它与谷歌文档中提到的MIME类型有关。

text/*, senders will often send text/plain, text/rtf, text/html, text/json
image/*, senders will often send image/jpg, image/png, image/gif
video/*, senders will often send video/mp4, video/3gp

但我不知道如何使用这些信息。任何帮助将不胜感激。啪!

在创建意图时ACTION_SENDTO添加为操作参数,您应该会看到能够处理消息/短信等的应用程序列表。

val intent = Intent(Intent.ACTION_SENDTO) // get list of activities that can handle this type of intent val lst = pm.queryIntentActivities(intent, 0)

这里的包名称是指 - 应用包名称

fun appinstalled(){
var app_names = mutableListOf<String>()
val app_package = mutableListOf<String>()
val packagelist: MutableList<PackageInfo> =  packageManager.getInstalledPackages(0)
var appname : String
var packname : String

for (i in packagelist.indices) {
val packageinfo : PackageInfo= packagelist[i]

appname=packageinfo.applicationInfo.loadLabel(packageManager).toString()
packname=packageinfo.packageName
app.add(appname)
app-package.add(packname)


}

这将 用户设备中安装的应用程序列表及其包名称 .在此之后,将这些列表附加到列表视图及其附加项并全部完成。

相关内容

最新更新