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

Java Android-我可以自定义启动应用程序吗?,java,android,google-chrome,firefox,Java,Android,Google Chrome,Firefox,首先,对不起我的英语不好 我得到的应用程序可以打开一个网络浏览器时,这个应用程序启动 当应用程序第一次执行时,它会要求用户选择是否要通过Chrome或Firefox或任何其他应用程序启动。这个应用程序会记住用户的选择。下次用户来时,应用程序将打开用户选择的应用程序 问题是,这个应用程序不能在Firefox中运行,所以我必须删除启动列表中的Firefox,防止Firefox在第一次启动时被用户选择 之前: private String mUri = "http://www.google.c

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

我得到的应用程序可以打开一个网络浏览器时,这个应用程序启动

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

问题是,这个应用程序不能在Firefox中运行,所以我必须删除启动列表中的Firefox,防止Firefox在第一次启动时被用户选择

之前:

    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);
=================================================
您想用启动此应用程序吗
・铬
・firefox
・浏览器
=================================================

之后:

    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();
        }
    }
=================================================
您想用启动此应用程序吗
・铬
・浏览器
=================================================

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

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

下面是我通过检查以下答案来解决这个问题的方法:

之前:

    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();
        }
    }
私有字符串mUri=”http://www.google.com";
Intent catchIntent=getIntent();
字符串uri=catchIntent.getStringExtra(Const.INTENT\u TRANSITION\u URL);
mUri=uri;
Intent=newintent(Intent.ACTION_视图,Uri.parse(mUri));
intent.addCategory(intent.CATEGORY可浏览);
infoList=getPackageManager()
.查询活动(意图,
PackageManager.MATCH_(仅限默认值);
字符串excludeApplicationName=“org.mozilla.firefox”;
for(Iterator Iterator=infoList.Iterator();Iterator.hasNext();){
String String=iterator.next().activityInfo.packageName;
if(string.equals(excludeApplicationName)){
iterator.remove();
}
}
我只是简单地获取所有可以打开URL的应用程序列表,然后使用迭代器将firefox从列表中删除。
谢谢你的帮助

下面是我通过检查以下答案来解决这个问题的方法:

之前:

    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();
        }
    }
私有字符串mUri=”http://www.google.com";
Intent catchIntent=getIntent();
字符串uri=catchIntent.getStringExtra(Const.INTENT\u TRANSITION\u URL);
mUri=uri;
Intent=newintent(Intent.ACTION_视图,Uri.parse(mUri));
intent.addCategory(intent.CATEGORY可浏览);
infoList=getPackageManager()
.查询活动(意图,
PackageManager.MATCH_(仅限默认值);
字符串excludeApplicationName=“org.mozilla.firefox”;
for(Iterator Iterator=infoList.Iterator();Iterator.hasNext();){
String String=iterator.next().activityInfo.packageName;
if(string.equals(excludeApplicationName)){
iterator.remove();
}
}
我只是简单地获取所有可以打开URL的应用程序列表,然后使用迭代器将firefox从列表中删除。
谢谢你的帮助

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