打电话沟通做网站话术昌平手机网站建设

张小明 2026/1/1 10:53:19
打电话沟通做网站话术,昌平手机网站建设,用wordpress搭建商店,wordpress 颜色插件下载这两种方法#xff08;Intent直接唤起 和 DeepLink#xff09;的核心区别在于#xff1a;它们不需要把代码合并在一起#xff0c;而是保持两个独立的 APK#xff08;App A 和 App B#xff09;#xff0c;通过 Android 系统的通信机制让它们互相“对话”。 假设场景Intent直接唤起 和 DeepLink的核心区别在于它们不需要把代码合并在一起而是保持两个独立的 APKApp A 和 App B通过 Android 系统的通信机制让它们互相“对话”。假设场景App A (主控端)想要打开另一个 App。App B (被控端)拥有你想要展示的功能页面。以下是详细教程方法一通过包名/类名直接唤起 (Intent ComponentName)这种方法最简单直接适合App B 是你自己的且你知道它的确切包名和类名的情况。第一步配置 App B (被唤起方)在 App B 的AndroidManifest.xml中找到你想要让外部启动的那个 Activity比如MainActivity或者FunctionActivity。关键点必须添加android:exportedtrue。!-- App B 的 AndroidManifest.xml --manifestpackagecom.ebike.intercept!-- 假设这是 App B 的包名 --application...!-- 这里的 exportedtrue 允许外部 App 启动它 --activityandroid:name.MainActivityandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.MAIN/categoryandroid:nameandroid.intent.category.LAUNCHER//intent-filter/activity/application/manifest第二步配置 App A (发起方) - 适配 Android 11从 Android 11 (API 30) 开始为了隐私安全App A 默认看不见App B 是否安装。你需要添加queries标签声明“我需要查询 App B”。在 App A 的AndroidManifest.xml中!-- App A 的 AndroidManifest.xml --manifestpackagecom.example.appa!-- 必须添加这个否则检测不到 App B 是否安装 --queriespackageandroid:namecom.ebike.intercept/!-- 填 App B 的包名 --/queriesapplication....../manifest第三步在 App A 的 Java 代码中编写跳转逻辑// 在 App A 的点击事件中publicvoidjumpToAppB(){// 1. 定义 App B 的包名和类名StringpackageNamecom.ebike.intercept;StringclassNamecom.ebike.intercept.MainActivity;// 必须是完整路径// 2. 检查 App B 是否安装为了防止 Crashif(isAppInstalled(context,packageName)){IntentintentnewIntent();// 3. 设置 ComponentNameComponentNamecomponentNamenewComponentName(packageName,className);intent.setComponent(componentName);// 4. (可选) 传递数据intent.putExtra(key_from_a,Hello from App A);// 5. 必须加 NEW_TASK 标记如果在非 Activity 环境下启动intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);}else{Toast.makeText(context,请先安装 App B,Toast.LENGTH_SHORT).show();}}// 辅助方法检查 App 是否安装privatebooleanisAppInstalled(Contextcontext,StringpackageName){try{context.getPackageManager().getPackageInfo(packageName,0);returntrue;}catch(PackageManager.NameNotFoundExceptione){returnfalse;}}方法二使用 DeepLink (自定义 URL Scheme)这是更推荐的现代做法它的耦合度更低。App A 不需要知道 App B 的具体类名只需要像打开网页一样打开一个 URL例如ebike://home系统会自动找到 App B。第一步配置 App B (被唤起方)你需要给 App B 的某个 Activity 配置一个“暗号”Scheme。在 App B 的AndroidManifest.xml中!-- App B 的 AndroidManifest.xml --activityandroid:name.DetailActivity!-- 这里的 intent-filter 是关键 --intent-filter!-- 必须有 ACTION_VIEW --actionandroid:nameandroid.intent.action.VIEW/!-- 必须有 DEFAULT --categoryandroid:nameandroid.intent.category.DEFAULT/!-- 允许浏览器唤起可选但推荐 --categoryandroid:nameandroid.intent.category.BROWSABLE/!-- 定义暗号ebike://open_detail --!-- scheme: 协议头host: 路径/主机名 --dataandroid:schemeebikeandroid:hostopen_detail//intent-filter/activity第二步在 App B 中接收参数 (可选)在DetailActivity.java的onCreate方法中// App B 的 DetailActivity.javaOverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_detail);// 获取 Intent 中的数据IntentintentgetIntent();Uridataintent.getData();if(data!null){// 比如 URL 是 ebike://open_detail?msghelloid100Stringmsgdata.getQueryParameter(msg);// 获取 helloStringiddata.getQueryParameter(id);// 获取 100Log.d(DeepLink,收到参数: msg);}}第三步在 App A 中编写跳转逻辑App A 现在根本不需要知道 App B 的包名或类名只需要访问这个 URL。// 在 App A 的点击事件中publicvoidjumpByDeepLink(){// 1. 构建 URI并带上参数Stringurlebike://open_detail?msg来自AppA的问候id666;IntentintentnewIntent(Intent.ACTION_VIEW,Uri.parse(url));intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 2. 检查系统中是否有 App 能响应这个 Intent// (注意在 Android 11 上如果 App A 没加 queries这个 resolveActivity 也可能返回 null// 但直接 startActivity 通常会弹出一个系统选择框或者直接跳转)try{startActivity(intent);}catch(Exceptione){Toast.makeText(context,没有检测到已安装的目标应用,Toast.LENGTH_SHORT).show();}}总结对比特性方法一直接唤起 (Intent/ComponentName)方法二DeepLink (URL Scheme)原理“我要去某个具体地址找老王”“我要喊一声老王谁是老王谁答应”配置难度简单中等需配置 IntentFilter耦合度高(需硬编码包名类名B重构改名则A会挂)低(只需约定 URL 字符串)灵活性只能 App 唤起App 和 网页浏览器都能唤起参数传递Bundle (类型丰富)URL 字符串 (只能传 String)适用场景两个 App 都是你开发的且不做网页跳转需要从 H5 页面跳入 App或者想要标准化的协议总结如下如果这两个 App 都要安装在同一台专用设备上比如工业PDA、特定的E-bike中控屏使用方法一直接唤起最快。因为环境是可控的您确定两个 App 都会安装直接写包名跳过去就行代码改动最小。如果您希望看起来像一个 App用户体验更好可以把App A 做成一个“壳”Launcher桌面只显示 App A 的图标。App B 在 Manifest 里去掉LAUNCHERcategory这样桌面上看不到 B 的图标。然后用户打开 A点击某个按钮时A 在后台启动 B 的 Activity。这样用户感觉就像是在同一个软件里操作一样。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人网站空间申请莱西市城乡建设局网站

如何通过Dify实现高效的提示词工程优化 在大模型技术席卷各行各业的今天,越来越多企业开始尝试将LLM(大语言模型)融入实际业务流程。然而现实却常常令人沮丧:一个看似简单的智能客服或知识问答系统,往往需要数周甚至更…

张小明 2025/12/30 7:55:07 网站建设

珠海专业的免费建站建站平台排行

我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也不知道网络安全有哪些相关论坛或网站,所以在这里给大…

张小明 2025/12/30 7:54:33 网站建设

多新闻怎么做扁平网站网页制作设计

Excalidraw部署教程:五分钟搭建专属绘图服务 在远程协作成为常态的今天,一个简单、高效又能保护隐私的可视化工具,几乎成了每个技术团队的刚需。开会时想随手画个架构图,却要先注册账号、下载客户端、适应复杂界面?更别…

张小明 2025/12/30 7:53:58 网站建设

网站设计网站建设建设企业网站企业网上银行

LightGlue实战指南:突破传统图像匹配的性能瓶颈 【免费下载链接】LightGlue LightGlue: Local Feature Matching at Light Speed (ICCV 2023) 项目地址: https://gitcode.com/gh_mirrors/li/LightGlue 在计算机视觉领域,图像特征匹配技术正面临前…

张小明 2025/12/30 7:53:24 网站建设

济南seo排行榜seo是网络优化吗

解锁QQ音乐加密音频:qmcdump解码工具全攻略 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经遇到过…

张小明 2025/12/31 12:47:02 网站建设

网站设置字体样式网站建设捌金手指花总二九

摘要 随着信息技术的快速发展,旅游业逐渐向数字化、智能化方向转型。传统的旅游管理模式依赖人工操作,效率低下且难以满足现代游客的个性化需求。旅游管理系统通过整合旅游资源、优化服务流程,能够有效提升用户体验和管理效率。该系统结合互联…

张小明 2025/12/31 19:50:38 网站建设