【问题标题】:Android- can I customize the start up application?Android-我可以自定义启动应用程序吗?
【发布时间】:2018-03-10 22:27:54
【问题描述】:

首先,对不起我的英语不好。

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

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

所以问题来了,这个应用不能在火狐中运行,所以我必须在启动列表中删除火狐,防止火狐在第一次启动时被用户选择。

之前:

===============================
你想启动这个应用程序吗?
・铬
・火狐
・浏览器
==============================

之后:

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

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

如果是这样,谁能告诉我应该编辑哪种方法? 感谢您的帮助。

【问题讨论】:

  • 是的,这是可能的,但问题是您必须收集所有支持的浏览器包名称并检查设备是否安装了应用程序。如果已安装,则在该列表中显示它,如果没有,则不要显示它。在这个地方你可以绕过firefox问题。
  • @BabulPatel 感谢您的评论!这对我帮助很大!但是你能告诉我方法名称或者我应该在哪里找到这个设置吗?
  • @Zeero0 非常感谢!我会检查的。

标签: java android google-chrome firefox


【解决方案1】:

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

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。 感谢您的所有帮助!

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多