- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取与扩展关联的默认程序的图标。
这是我的代码:
Intent intent = new Intent(Intent.ACTION_VIEW);
MimeTypeMap mime = MimeTypeMap.getSingleton();
String tt = mime.getMimeTypeFromExtension(getExtension());
intent.setDataAndType(Uri.fromFile(getFile()), tt);
List<ResolveInfo> matches = c.getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo match : matches) {
if(match.isDefault){
//GET ICON
}
}
问题是 match.isDefault
总是返回 false,即使我尝试将 PackageManager 的标志从 0
设置为 PackageManager.MATCH_DEFAULT_ONLY
.
显然,我正在测试的文件(视频)默认与程序(MX Player)相关联。
有人可以帮帮我吗?
提前致谢。
最佳答案
作为替代解决方案,您可能希望使用此方法获取默认 Intent :
ResolveInfo info = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
返回的结果是:
如果没有为 Intent 设置默认值:info.activityInfo.name 等于“com.android.internal.app.ResolverActivity”
如果为 Intent 设置了任何默认应用程序,则您可以检查 ResolveInfo 对象以获取默认应用程序信息。
编辑:
对于url,你可以这样做:
//Example: youtube url
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=something"));
ResolveInfo defaultResolution = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
//Print the activity name
Log.i(TAG, "defaultResolution:" + defaultResolution.activityInfo.name);
关于android - ResolveInfo.isDefault 始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11894952/
我在res / drawable文件夹中有一些图像。现在需要将图像存储在列表中。 我尝试这样做 ArrayList myImageList = new ArrayList<>(); myImageLi
我正在尝试获取与扩展关联的默认程序的图标。 这是我的代码: Intent intent = new Intent(Intent.ACTION_VIEW); MimeTypeMap mime = Mim
在我的主屏幕替换应用程序中,我必须获取所有已安装应用程序的列表才能将它们放入应用程序抽屉中。因此,以下方法会在每个应用程序上运行; public static App fromResolveInfo
我正在创建手机上安装的应用程序列表。我正在使用 PackageManager 和 ResolveInfo 检索所有已安装的应用程序。由于内存问题,我使用 getIconResource() 而不是 l
我正在尝试为 android 制作一个自定义启动器,并且我正在尝试弄清楚如何启动一个不同的应用程序表单。我认为这样做的方法是 Intent ,我在这里找到了一个帖子: Open another app
我有一个列表,其中包含可以处理我的两个操作 Intent.ACTION_PICK 和 MediaStore.ACTION_IMAGE_CAPTURE 中的任何一个的应用程序。稍后我使用数组适配器使用此
对于手机上安装的所有应用程序,我需要访问: 姓名 图标 可以安装应用程序的 google play url 我查看了 ApplicationInfo,但它似乎没有向我提供此信息。我听说过 Packag
我想将我的 Activity (com.myapp.launcher.settings) 添加到一个空的 ArrayList。 ArrayList selectedApps = new Arr
实际上,我正在尝试将一个项目从 ArrayList a (allApps) 添加到 ArrayList b (myApps),但出现错误。 这就是我正在尝试的: public ArrayList my
我正在尝试显示所有已安装的应用程序及其图标。单击列表项后,我将显示与该应用程序相关的记录。 应用程序和图标显示正常,但是当我单击列表项时出现以下错误。java.lang.classcastExcept
自从更新我的依赖项以来,我的 django 应用程序遇到了一些问题。这是我安装的应用程序: INSTALLED_APPS = [ 'graphene_django', 'rest_fr
我是一名优秀的程序员,十分优秀!