gpt4 book ai didi

安装了 Android Fetch 和设备中的默认浏览器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:40 28 4
gpt4 key购买 nike

Intent.CATEGORY_LAUNCHER 的帮助下,我能够获取 Launcher 中的所有应用程序。

所以为了测试我创建了一个测试 Activity ,这个 Activity 包含一个按钮,如果我按下按钮,它应该显示设备中的应用程序

NOTE: `it should not display specific. for example i needed only Browser it should display all browser applications.`

我以这种方式尝试了一个小代码:

btn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_BROWSER);

List<ResolveInfo> mainLauncherList = getPackageManager().queryIntentActivities(intent, 0);
System.out.println("the list iss = " +mainLauncherList);
}
});

该列表仅返回一个浏览器,即单个浏览器。

最佳答案

而不是一个类别,给 Intent 一个 Action 并查询那些可以 ACTION_VIEW 一个 url,就像这样:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));

List<ResolveInfo> mainLauncherList = getPackageManager().queryIntentActivities(intent, 0);
Log.e("Browsers","the list iss = " +mainLauncherList);

返回的内容如下:

[ResolveInfo{44e9d350 com.android.browser.BrowserActivity p=0 o=0 m=0x208000}]

假设您安装了多个浏览器,它将包含所有浏览器。也许我误解了您的问题,但如果您尝试启动打开 url 的 Intent ,这在技术上会返回相同的应用程序。

关于获取这些应用程序的启动器 Activity ,因为您已经知道如何获取所有主要应用程序,并且通过我提供的代码,您可以匹配包名称(大概)以找到发射器一(?)

更新

ArrayList<String> allLaunchers = new ArrayList<String>();

Intent allApps = new Intent(Intent.ACTION_MAIN);
List<ResolveInfo> allAppList = getPackageManager().queryIntentActivities(allApps, 0);
for(int i =0;i<allAppList.size();i++) allLaunchers.add(allAppList.get(i).activityInfo.packageName);

Intent myApps = new Intent(Intent.ACTION_VIEW);
myApps.setData(Uri.parse("http://www.google.es"));
List<ResolveInfo> myAppList = getPackageManager().queryIntentActivities(myApps, 0);
for(int i =0;i<myAppList.size();i++){
if(allLaunchers.contains(myAppList.get(i).activityInfo.packageName)){
Log.e("match",myAppList.get(i).activityInfo.packageName+"");
}
}

正如我所说,您从启动器获取所有包,并将它们与能够执行操作(无论是拍照还是浏览网页)的包进行匹配。你应该能够用它来完成那件事。

关于安装了 Android Fetch 和设备中的默认浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512597/

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