intent的相关

检测一个intent是否有效:

public static boolean isIntentAvailable(Context context, Intent intent) {
    PackageManager packageManager = context.getPackageManager();
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
        PackageManager.GET_ACTIVITIES);
    return list.size() > 0;
}

检测是否有默认程序:

public final boolean hasPreferredApplication(final Context context, final Intent intent) {
    PackageManager pm = context.getPackageManager();
    ResolveInfo info = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
    return !"android".equals(info.activityInfo.packageName);
}

这里解释一下,如果没有设置默认程序,系统会弹出一个所有支持程序的列表,这个弹出的对话框其实是com.android.internal.app.ResolverActivity,包名是“android”,所以使用“android”字符串判断。

阅读更多
个人分类: Android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭