Android-我可以自定义启动应用程序吗?

时间:2017-09-29 04:06:06

标签: java android google-chrome firefox

首先,抱歉我的英语不好。

当APP启动时,我得到了可以打开网络浏览器的APP。

当应用程序第一次执行时,它会要求用户选择是否要通过Chrome或Firefox或任何其他应用程序启动用户。这个APP会记住用户的选择。下次用户来应用时,将打开用户选择的应用程序。

所以这就是问题,这个应用程序无法在Firefox中运行,因此我必须在启动列表中删除Firefox,以防止Firefox在第一次启动时由用户选择。

之前:

=============================
 你想用这个应用程序启动?
 ·铬
 ·firefox
 ·浏览器
=============================

后:

=============================
 你想用这个应用程序启动?
 ·铬
 ·浏览器
=============================

我是否可以在此应用中添加一些源代码来自定义启动列表,而不是更改智能手机中的所有启动设置?因为我不想在同一设备中影响其他APP。而且我也不想在设备中删除Firefox。

如果是这样,有人可以告诉我应该编辑哪种方法吗? 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

所以这是我通过检查这些答案解决问题的方法:

How to exclude a specific application from ACTION_VIEW Intent?

Is it possible to hide some application in Intent AppChooser?

Iterating through a Collection, avoiding ConcurrentModificationException when removing in loop

之前:

    private String mUri = "http://www.google.com";
    Intent catchIntent = getIntent();
    String uri = catchIntent.getStringExtra(Const.INTENT_TRANSITION_URL);
    mUri = uri;   
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mUri));
    intent.addCategory(Intent.CATEGORY_BROWSABLE);
    infoList = getPackageManager()
            .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);

后:

    private String mUri = "http://www.google.com";
    Intent catchIntent = getIntent();
    String uri = catchIntent.getStringExtra(Const.INTENT_TRANSITION_URL);
    mUri = uri;   
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mUri));
    intent.addCategory(Intent.CATEGORY_BROWSABLE);
    infoList = getPackageManager()
            .queryIntentActivities(intent, 
PackageManager.MATCH_DEFAULT_ONLY);
    String excludeApplicationName = "org.mozilla.firefox";
    for(Iterator<ResolveInfo> iterator = infoList.iterator(); iterator.hasNext();){
        String string = iterator.next().activityInfo.packageName;
        if(string.equals(excludeApplicationName)){
            iterator.remove();
        }
    }

我只是简单地获取可以打开URL的所有应用程序列表,并使用迭代器从列表中删除firefox。 谢谢你的帮助!