Android ResolveInfo.isDefault始终为on false
我正在尝试获取与扩展关联的默认程序的图标 这是我的密码:Android ResolveInfo.isDefault始终为on false,android,Android,我正在尝试获取与扩展关联的默认程序的图标 这是我的密码: Intent intent = new Intent(Intent.ACTION_VIEW); MimeTypeMap mime = MimeTypeMap.getSingleton(); String tt = mime.getMimeTypeFromExtension(getExtension()); intent.setDataAndType(Uri.fromFile(getFile()), tt); List<Resol
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
}
}
Intent-Intent=新意图(Intent.ACTION\u视图);
MimeTypeMap mime=MimeTypeMap.getSingleton();
字符串tt=mime.getMimeTypeFromExtension(getExtension());
setDataAndType(Uri.fromFile(getFile()),tt);
列表匹配项=c.getPackageManager().QueryInputActivities(intent,0);
用于(ResolveInfo匹配:匹配){
if(match.isDefault){
//获取图标
}
}
问题是match.isDefault
始终返回false,即使我尝试将PackageManager的标志从0
设置为PackageManager.match\u DEFAULT\u ONLY
显然,我正在测试的文件(视频)默认与程序(MX播放器)关联
有人能帮我吗
提前感谢。作为替代解决方案,您可能希望使用此方法获得默认意图:
ResolveInfo info = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
返回的结果将是:
//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);
如何获得用户偏好?@EugenMarynov-Hmm,很抱歉,我不知道你想要什么。你能为你的问题提供更多细节吗?我选择instagram作为默认应用程序,用于与主机“instagram”的链接。是否可以从PackageManager获取此信息?