Я пытаюсь найти значение по умолчанию Intent
, какое устройство используется для поддержки определенного типа MIME, код вроде:
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, mimeType);
List<ResolveInfo> lri = pm.queryIntentActivities(intent, 0);
for(ResolveInfo resolveInfo:lri)
{
if(Me.DEBUG)
Log.i(TAG, "Resolved intent="+resolveInfo.activityInfo.packageName+
", default="+resolveInfo.isDefault+
", order="+resolveInfo.preferredOrder+
", match="+resolveInfo.match+
", priority="+resolveInfo.priority);
if(resolveInfo.isDefault)
{
intent=pm.getLaunchIntentForPackage(resolveInfo.resolvePackageName);
intent.setDataAndType(uri, mimeTypes.getMimeTypeString(name));
break;
}
}
return intent;
Что не так с этим кодом? ResolveInfo никогда не возвращает значение по умолчанию ... Отчеты Logcat всегда одинаковы, например:
Разрешенное намерение = com.android.htmlviewer, по умолчанию = false, order = 0,
соответствует = 6324224, приоритет = 0 Решено намерение = com.sec.print.mobileprint,
по умолчанию = ложь, порядок = 0, совпадение = 6324224, приоритет = 0 Решено
intent = com.qo.android.htc, default = false, order = 0, match = 6324224,
priority = 0 Resolved intent = org.coolreader, default = false, order = 0,
соответствие = 6324224, приоритет = 0 Разрешенное намерение = xcxin.filexpert,
по умолчанию = ложь, порядок = 0, совпадение = 6324224, приоритет = 0 Решено
intent = com.opera.browser, default = false, order = 0, match = 6324224,
priority = 0 Resolved intent = com.dropbox.android, default = false,
order = 0, match = 6324224, приоритет = 0
Несмотря на то, что пользователь по умолчанию помечает флажок «сделать это по умолчанию» в списке выбора!