android - 如何获取android系统默认家庭应用程序的名称

标签 android

如果我的手机安装了 3-4 个家庭(启动器)应用程序,当我按下主页键时,它会显示一个对话框来显示我手机上安装的家庭应用程序,那么我会选择一个作为默认应用程序。我的问题是: 能否通过代码获取默认首页应用的包名?

解决,使用follow api。

public abstract int getPreferredActivities (List<IntentFilter> outFilters, List<ComponentName> outActivities, String packageName)

最佳答案

你看过吗:PackageManager.resolveActivity() ,

Intent intent= new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo defaultLauncher= getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
String nameOfLauncherPkg= defaultLauncher.activityInfo.packageName;

确保您使用 HOME Intent ,因为显然您将在家中安装启动器。

还没有用过,但你可以用另一个标志试试,即

PackageManager.GET_INTENT_FILTERS 代替

PackageManager.MATCH_DEFAULT_ONLY

FINAL SOLUTION:

API 包管理器,

public abstract int getPreferredActivities (List<IntentFilter> outFilters,List<ComponentName> outActivities, String packageName)

关于android - 如何获取android系统默认家庭应用程序的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15964550/

相关文章:

android - 错误 :compileSdkVersion android-21 requires compiling with JDK 7 - windows

android - isDialog() 与 Espresso 中的对话框 fragment 不匹配

Android:SupportMapFragment 顶部的 Snack bar 显示不正确

java - 关于位置管理器的问题

Android Kotlin - 将 jsonArray 转换为 Array<String>

android - WebView 后退、刷新、前进?根本行不通!

java - 如何使用共享首选项存储和检索 recyclerview 数据

Android - 我的 Activity 如何检测到我在 Firebase 消息服务中收到了通知?

java - 任务 :app:compileDebugJavaWithJavac in Android Studio java 执行失败

javascript - 元素类型无效 : expected a string (for built-in components) or a class/function (for composite components) but got: object. React-Native