I’m trying to find default Intent which device is using to support specific mime type, code like:
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;
What’s wrong with this code? ResolveInfo never returns default one… Logcat reports always the same, like:
Resolved intent=com.android.htmlviewer, default=false, order=0,
match=6324224, priority=0 Resolved intent=com.sec.print.mobileprint,
default=false, order=0, match=6324224, priority=0 Resolved
intent=com.qo.android.htc, default=false, order=0, match=6324224,
priority=0 Resolved intent=org.coolreader, default=false, order=0,
match=6324224, priority=0 Resolved intent=xcxin.filexpert,
default=false, order=0, match=6324224, priority=0 Resolved
intent=com.opera.browser, default=false, order=0, match=6324224,
priority=0 Resolved intent=com.dropbox.android, default=false,
order=0, match=6324224, priority=0
Though there’s default marked user as “make this the default” checkbox on the chooser!
Here, “default” means the user set a default, by having this
Intentinvoked previously and checking the “make this the default” checkbox on the chooser. If that has not already been done, there is no default.