首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取android系统默认主页应用的名称

如何获取android系统默认主页应用的名称
EN

Stack Overflow用户
提问于 2013-04-12 14:29:07
回答 3查看 3.8K关注 0票数 4

如果我的手机安装了3-4个家庭(启动器)应用程序,当我按下home键时,它会显示一个对话框,显示我手机上安装的家庭应用程序,然后我会选择一个,因为default.My问题是:我可以通过代码获得默认家庭应用程序的包名吗?

解决它,使用下面的api。

代码语言:javascript
复制
public abstract int getPreferredActivities (List<IntentFilter> outFilters, List<ComponentName> outActivities, String packageName)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-12 14:50:25

你有没有看过:PackageManager.resolveActivity()

代码语言:javascript
复制
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,因为很明显,您将在HOME上安装启动器。

尚未使用,但您可以使用另一个标志进行尝试。

PackageManager.GET_INTENT_FILTERS代替

代码语言:javascript
复制
PackageManager.MATCH_DEFAULT_ONLY

最终解决方案:

接口packageManager,

代码语言:javascript
复制
public abstract int getPreferredActivities (List<IntentFilter> outFilters,List<ComponentName> outActivities, String packageName)
票数 9
EN

Stack Overflow用户

发布于 2014-10-15 21:07:42

这是一个返回字符串数组的方法,它包含设备上的所有家庭应用程序:

代码语言:javascript
复制
public String[] getDefaultLauncherList() {
    final Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    final List<ResolveInfo> list = ((PackageManager)getPackageManager()).queryIntentActivities(intent, 0);      
    String[] toReturn=new String[list.size()];
    for(int i=0;i<list.size();i++)
        toReturn[i]=list.get(i).activityInfo.packageName;
    return toReturn;     
}
票数 0
EN

Stack Overflow用户

发布于 2015-03-01 22:49:17

这是我使用的方法:

代码语言:javascript
复制
private String nameOfHomeApp()
    {
        try {
            Intent i = new Intent(Intent.ACTION_MAIN);
            i.addCategory(Intent.CATEGORY_HOME);
            PackageManager pm = getPackageManager();
            final ResolveInfo mInfo = pm.resolveActivity(i, PackageManager.MATCH_DEFAULT_ONLY);
            return mInfo.activityInfo.packageName;
        }
        catch(Exception e)
        {
            return "";
        }

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15964550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档