gpt4 book ai didi

android - Action_view Intent 不在选择器中显示浏览器选项

转载 作者:行者123 更新时间:2023-12-05 07:45:23 27 4
gpt4 key购买 nike

我正在创建一个像 https://www.example.com/somedirection 这样的 URI 并且 ACTION_VIEW Intent .

有一个应用程序,我们称它为 EXAMPLEAPP 可以打开该 Intent ,但如果您的手机中没有该应用程序。然后您可以在任何浏览器中打开该 URI。

问题是我不希望用户使用 EXAMPLEAPP 来遵循该 Intent ,因为当用户返回我的应用程序时我遇到了一些问题(他们必须为此 Intent 付款)。

因此,如果用户没有应用程序,没问题,一切都很好。但是,如果用户拥有 EXAMPLEAPP,则意向选择器仅显示该应用,而不会显示任何浏览器,但正如我所说,我不希望用户使用该应用完成意向。

为什么选择器不显示任何浏览器(我安装了 Chrome)并且在安装应用时只显示应用?

这是我的代码。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(electronicLink));
Intent chooser = Intent.createChooser(intent, "Some title");
if (intent.resolveActivity(packageManager) != null) {
context.startActivity(chooser);
}

我也试过打电话

List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 0);

我只在安装应用时看到应用,在未安装时看到 Chrome。

最佳答案

是的,我在我的 Android 11 上发现了同样的问题。在我的 Pie 上工作正常但不是这样。因此我创建了自己的代码来获取查询:

private static List<ResolveInfo> queryIntentActivities(PackageManager pm,Intent in) {
ArrayList<ResolveInfo> queries=new ArrayList<>();
{
// get default queries
List<ResolveInfo> i=pm.queryIntentActivities(in, 0);
if(i!=null){
queries.addAll(i);
}
}
// check if package name already not set
if(Utils.isEmpty(in.getPackage())){

// search all installed apps for custom query
for(ApplicationInfo ai:pm.getInstalledApplications(0)){

// clone and change package name
Intent intent=in.cloneFilter().setPackage(ai.packageName);

// get queries of current package with intent
List<ResolveInfo> i=pm.queryIntentActivities(intent, 0);

// check if the app has queries for the intent
if (i != null) {

// add all queries to the list
for(ResolveInfo ri:i){

// check for duplicate entries
if(!queries.contains(ri)){
queries.add(ri);
}
}
}
}
}
return queries;
}

希望它有用;-)

关于android - Action_view Intent 不在选择器中显示浏览器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705591/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com