安卓系统浏览器开发

news2024/11/24 22:36:30

预置某个浏览器为系统默认的浏览器

描述:

当系统存在多个浏览器时,如何预置某个浏览器为系统默认的浏览器?

方法:

1.在PackageManagerService.java中的构造函数结尾添加:setDefaultBrowser();

2.setDefaultBrowser()的具体实现:

private final void setDefaultBrowser(){

                   Log.d("debug_default","setDefaultBrowser is called.");

                   if(!isFirstBoot()) {

                            Log.d("debug_default","not first boot, return");

                            return;

                            }

                  

                   String str1 = "android.intent.category.DEFAULT";

                   String str2 = "android.intent.category.BROWSABLE";

                   String str3 = "android.intent.action.VIEW";

                   //intent filter

                   IntentFilter filter = new IntentFilter(str3);

                   filter.addCategory(str1);

                   filter.addCategory(str2);

                   filter.addDataScheme("http");

        

                   //intent

                   Intent intent = new Intent(str3);

                   intent.addCategory(str2);

                   intent.addCategory(str1);

                   Uri uri = Uri.parse("http://");

                   intent.setDataAndType(uri, null);

                  

                   //set UC,if your want set other browser as default, modify below code, add package name and activiy name

                  ComponentName component = new ComponentName("packageName ","activityName");

                  

                   //find all browsers

                   List<ResolveInfo> resolveInfoList = queryIntentActivities(intent,intent.getType(),PackageManager.GET_INTENT_FILTERS, 0);

                   int size = resolveInfoList.size();

                   ComponentName[] arrayOfComponentName = new ComponentName[size];

                   //make sure the default browser in phone

                   boolean no_UC = true;

                   for (int i = 0; i < size; i++)

                   {

                            ActivityInfo activityInfo = resolveInfoList.get(i).activityInfo;

                            String packageName = activityInfo.packageName;

                            String className = activityInfo.name;

                           if (packageName.equals("packageName")) no_UC = false;

                           

                            ComponentName componentName = new ComponentName(packageName, className);

                            arrayOfComponentName[i] = componentName;

                   }

                   if (no_UC){

                            return;

                            }

                   //set default

                   addPreferredActivity2(filter,IntentFilter.MATCH_CATEGORY_SCHEME, arrayOfComponentName,component);

                   }

3.增加addPreferredActivity2接口(还是在PackageManagerService.java中):

public void addPreferredActivity2(IntentFilter filter, int match,

            ComponentName[] set, ComponentName activity) {

        // writer

        synchronized (mPackages) {           

            Slog.i(TAG, "Adding preferred activity " + activity + ":");

            filter.dump(new LogPrinter(Log.INFO, TAG), "  ");

          

mSettings.editPreferredActivitiesLPw(0).addFilter(

                    new PreferredActivity(filter, match, set, activity));

            mSettings.writePackageRestrictionsLPr(0);

        }

    }

修改网页默认字体大小

用HTMLViewer浏览html页面,点击页面中的邮箱地址,打开邮箱应用 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TDengine 合作伙伴 +1,这次是「DaoCloud道客」

随着我国数字经济持续快速发展&#xff0c;各行各业都在积极拥抱云技术&#xff0c;上云成为企业加快数字化转型步伐的关键一步。在此过程中&#xff0c;越来越多的企业开始意识到云原生技术的重要性&#xff0c;利用云原生更快地开发和部署应用程序&#xff0c;提高应用程序的…

智慧信访大数据挖掘平台解决方案

TipDM数据挖掘建模平台由泰迪自主研发&#xff0c;面向大数据挖掘项目的工具。平台使用JAVA语言开发&#xff0c;采用B/S结构&#xff0c;用户不需要下载客户端&#xff0c;可通过浏览器进行访问。平台提供了基于Python、R以及Hadoop/Spark分布式引擎的大数据分析功能。平台支持…

人民大学加拿大女王大学金融硕士——为什么这么多人选金融行业呢

又是一年毕业季&#xff0c;越来越多的新人涌入职场&#xff0c;金融行业依然是择业人们的香饽饽。为什么大家会选金融行业呢&#xff1f;金融行业是一个充满挑战但也充满魅力的行业。在这个快节奏的行业中&#xff0c;人们不断地面对着机遇和挑战&#xff0c;而这个行业也为那…

TLD5097EL-ASEMI代理英飞LED驱动TLD5097EL

编辑&#xff1a;ll TLD5097EL-ASEMI代理英飞LED驱动TLD5097EL 型号&#xff1a;TLD5097EL 品牌&#xff1a;Infineon(英飞凌) 封装&#xff1a;SSOP-14-EP-150mil 类型&#xff1a;LED驱动、汽车芯片 TLD5097EL特性 输入电压范围宽&#xff0c;从4.5 V到45 V 极低关断…

【FATE联邦学习】FATE 自定义Trainer

背景 自己定义了模型后&#xff0c;需要自行定义训练方式。 这里文档给了方法&#xff0c;但是大部分还是需要自己看源码摸索。 https://fate.readthedocs.io/en/latest/tutorial/pipeline/nn_tutorial/Homo-NN-Customize-Trainer/https://fate.readthedocs.io/en/latest/tu…

如何按需下载和安装Win10补丁

如何按需下载和安装Win10补丁 一般我们都是通过系统自带的Windows更新来直接安装补丁&#xff0c;这种方式虽然方便&#xff0c;但是耗时久&#xff0c;而且更新体量也大&#xff0c;会占用很多空间&#xff0c;其实我们完全可以按需下载和安装&#xff0c;下面就给大家介绍方法…

FPGA量子类比机制-FPQA,将在量子运算设计中引发一场新的革命

1980年代现场可程式化逻辑门阵列(FPGA)的出现彻底改变了电子设计。大约40年后&#xff0c;现场可程式化量子位元阵列(FPQA)可望在量子运算电路设计中引发一场类似的革命。 1980年代现场可程式化逻辑闸阵列(FPGA)的出现彻底改变了电子设计。FPGA允许设计人员创建适合特定应用的…

3DCAT亮相糖酒会,为元宇宙展会提供实时云渲染支持

4月12日&#xff0c;第108届全国糖酒商品交易会&#xff08;下文简称“糖酒会”&#xff09;在成都正式开幕&#xff0c;吸引了众多酒类企业和行业人士的参与。 图片源自新华社 本次糖酒会上&#xff0c;某展会采用了“双线”模式&#xff0c;除了线下的实体展位&#xff0c;还…

burpsuite工具的使用(详细讲解)

一&#xff09;前言 我已经在之前详细的说明了burpsuite的安装过程&#xff0c;如果不了解的可以看 burpsuite安装教程 &#xff1a;http://t.csdn.cn/uVx9X 在这了补充说明一下&#xff0c;在安装完burpsuite并设置完代理后&#xff0c;会出现如果访问的url是使用http协议的…

变频器需要定期更换的器件有哪些

导语&#xff1a;​变频器是由许多电子零件构成&#xff0c;例如半导体元件等&#xff0c;在使用和维护当中就涉及到更换部件的问题&#xff0c;由于变频器组成或物理特性的原因&#xff0c;在一定的时期内会产生劣化&#xff0c;因而会降低变频器的特性&#xff0c;甚至会引起…

python---实现一个简化版本的人生模拟器

1.游戏开始的时候,设定初始属性—颜值 体质 智力 家境 2.开始游戏,随机生成性别和出生点 3.针对每一年,都生成人生经历(依靠一定的随机因素当前角色属性) 需要import random一下 一些函数 代码的部分运行情况,由于代码过长此处不予展示!这个部分只写了幼年时期发生的事件!

分布式项目 12 用jsonp来完成单点登录功能(两个系统之间进行信息交互)

在项目中使用ctrlH &#xff0c;来快速查找相关的hrl请求。 首先全部的请求会进过jt-web&#xff0c;在进行对其他系统的通信。 说明&#xff1a;当点击“登录”或者"免费注册"跳转到登录或者注册页面。 在jt-web项目中&#xff0c;声明UserController资源&#…

【建议收藏】自动化测试框架开发教程

在自动化测试项目中&#xff0c;为了实现更多功能&#xff0c;我们需要引入不同的库、框架。 首先&#xff0c;你需要将常用的这些库、框架都装上。 pip install requests pip install selenium pip install appium pip install pytest pip install pytest-rerunfailures pip …

Vue 项目环境搭建和创建准备工作

一. 学习目标 掌握 Vue 项目创建的依赖环境掌握 Vue 项目创建过程 二. 学习内容 掌握搭建 Vue 项目准备环境掌握 Vue 项目创建过程了解 Vue 项目各子目录 三. 学习过程 1. 准备工作 &#xff08;1&#xff09;安装Node.js 打开node.js官网&#xff1a;Node.js &#xff0…

SpringBoot中事务失效的六个原因

SpringBoot中事务失效的原因&#x1f6a9; 常见的事务失效原因包括如下六个: 1. 事务方法非public修饰 由于Spring的事务是基于AOP的方式结合动态代理来实现的。因此事务方法一定要是public的&#xff0c;这样才能便于被Spring做事务的代理和增强。 而且&#xff0c;在Spri…

uniapp 横向滑动list(不同内容)分部问题:scroll-view,swiper overflow-x

横向滑动list,可使用标签&#xff1a; 1&#xff1a;scroll-view 2&#xff1a;swiper 3&#xff1a;overflow-x 正常来讲横向滑动的话 &#xff0c;需要特殊设置&#xff0c;只用view 设置display&#xff1a;flex&#xff0c;的话 无法横向滑动&#xff0c;右边的就会隐…

Melody 监控(四十九)

当新的世界出现&#xff0c;请立即向他奔去 上一章简单介绍了Spring Boot Actuator详解(四十八), 如果没有看过,请观看上一章 一. JavaMelody 一.一 什么是 Java Melody JavaMelody是一个方便的Java或JavaEE Web 应用程序监控工具。 它允许自动存储由 Web 应用程序的实际操…

我的GIT练习Four

目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习Four C1&#xff1a;初始化项目 C2&#xff1a;设计项目首页 C3&#xff1a;设计登录页面 C4&#xff1a;实现登录功能 C5&#xff1a;设计后台页面 C6&#xff1a;设计注册页面 C7&#xf…

Yolov5轻量化:CVPR2023|RIFormer:无需TokenMixer也能达成SOTA性能的极简ViT架构

1.RIFormer介绍 论文:https://arxiv.org/pdf/2304.05659.pdf 本文基于重参数机制提出了RepIdentityFormer方案以研究无Token Mixer的架构体系。紧接着,作者改进了学习架构以打破无Token Mixer架构的局限性并总结了优化策略。搭配上所提优化策略后,本文构建了一种极致简单且…

第五期:字符串的一些有意思的操作

文章目录 1. 替换空格2. 字符串的左旋转3. 答案代码3.1 替换空格3.2 字符串的左旋转 PS&#xff1a;每道题解题方法不唯一&#xff0c;欢迎讨论&#xff01;每道题后都有解析帮助你分析做题&#xff0c;答案在最下面&#xff0c;关注博主每天持续更新。 1. 替换空格 题目描述 请…