如何检查,如果我的应用程序是默认启动 [英] How to check if my application is the default launcher

查看:161
本文介绍了如何检查,如果我的应用程序是默认启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发buissness-应用程序,基本上是一个主页画面,并应该被用作缺省的主屏幕(该亭-application)。

有什么办法检查,如果我的启动是默认启动的? 谢谢!

诗。 类似的例子,但检查GPS的设置

  LocationManager ALM =(LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
如果(alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)){
    东西和放大器;操作;
}
 

解决方案

您可以得到preferred活动从 PackageManager 列表。使用<一个href="http://developer.android.com/reference/android/content/pm/PackageManager.html#get$p$pferredActivities%28java.util.List%3Candroid.content.IntentFilter%3E,%20java.util.List%3Candroid.content.ComponentName%3E,%20java.lang.String%29"><$c$c>get$p$pferredActivities()方法。

 布尔isMyLauncherDefault(){
    最后IntentFilter的过滤器=新的IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_HOME);

    名单&LT; IntentFilter的&GT;过滤器=新的ArrayList&LT; IntentFilter的&GT;();
    filters.add(过滤器);

    最后弦乐myPackageName = getPackageName();
    名单&LT;组件名&GT;活动=新的ArrayList&LT;组件名&GT;();
    最后PackageManager packageManager =(PackageManager)getPackageManager();

    //你可以用你的名包在这里作为第三个参数
    packageManager.get preferredActivities(过滤器,活动,NULL);

    对于(组件名活动:活动){
        如果(myPackageName.equals(activity.getPackageName())){
            返回true;
        }
    }
    返回false;
}
 

I am developing a buissness-application that is essentially a Home-screen, and is supposed to be used as a Default Homescreen (being a "kiosk"-application).

Is there any way of checking if my Launcher is the default Launcher? Thanks!

Ps. Similar example, but for checking GPS-settings

LocationManager alm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
if (alm.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
    Stuffs&Actions;
}

解决方案

You can get list of preferred activities from PackageManager. Use getPreferredActivities() method.

boolean isMyLauncherDefault() {
    final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_HOME);

    List<IntentFilter> filters = new ArrayList<IntentFilter>();
    filters.add(filter);

    final String myPackageName = getPackageName();
    List<ComponentName> activities = new ArrayList<ComponentName>();
    final PackageManager packageManager = (PackageManager) getPackageManager();

    // You can use name of your package here as third argument
    packageManager.getPreferredActivities(filters, activities, null);

    for (ComponentName activity : activities) {
        if (myPackageName.equals(activity.getPackageName())) {
            return true;
        }
    }
    return false;
}

这篇关于如何检查,如果我的应用程序是默认启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆