android 使用指定浏览器打开指定网页

本文介绍了一个Java工具类,用于检查特定包名的APP是否已安装,并提供了一个示例来检测UC浏览器的存在。此外,还展示了如何从手机中搜索已安装的浏览器程序来打开网页,包括使用系统默认浏览器的备选方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 工具类
*/
public class CheckApkExist {
    private static String ucPkgName = "com.uc.browser";

    public static boolean checkApkExist(Context context, String packageName){
        if (TextUtils.isEmpty(packageName))
            return false;
        try {
            ApplicationInfo info = context.getPackageManager()
                    .getApplicationInfo(packageName,
                            PackageManager.GET_UNINSTALLED_PACKAGES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }

    /** 示例:uc 浏览器检测*/
    public static boolean checkUCBrowserExist(Context context){
        return checkApkExist(context, ucPkgName);
    }
/** 
*   从手机上搜索已安装浏览器程序打开网页,默认使用系统浏览器。
*   将 context 替换为当前上下文环境,ActivityClass or  Context
*/
public void openBrowser(String url) { 
            String[] browser = {"com.tencent.mtt", "com.UCMobile", "com.uc.browser", "com.oupeng.browser", "com.oupeng.mini.android", "com.android.browser"};

            Intent intent = null;
            for (String br : browser) {
                if (CheckApkExist.checkApkExist(context, br)) {
                    String clsName = null;
                    try {
                        PackageManager pm = context.getApplicationContext().getPackageManager();
                        Intent intent1 = pm.getLaunchIntentForPackage(br);
                        ComponentName act = intent1.resolveActivity(pm);
                        clsName = act.getClassName();
                    } catch (Exception e) {
                    }
                    if (clsName == null) {
                        break;
                    }
                    intent = new Intent();
                    intent.setAction("android.intent.action.VIEW");
                    Uri content_url = Uri.parse(url);
                    intent.setData(content_url);
                    intent.setClassName(br, clsName);
                    break;
                }
            }
            if (intent == null) {
                intent = new Intent();
                intent.setAction("android.intent.action.VIEW");
                Uri content_url = Uri.parse(url);
                intent.setData(content_url);
            }
            context.startActivity(intent);
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值