`
wangxiaohigh
  • 浏览: 1459338 次
文章分类
社区版块
存档分类
最新评论

Launcher源码中Intent.createChooser()实现原理及小例子

 
阅读更多
在上一篇中,简单的分析了一下源代码,在

处百思不得其解,后来在网上找,也没有很透彻的解释。先看下它的官方文档吧:



在google上面也找了下,慢慢的有些明白,在一篇文章中看到这么一段话:

这里是要找到所有能处理Intent.ACTION_SET_WALLPAPER请求的activity,其字符串表示为android.intent.action.SET_WALLPAPER。使用Eclipse搜索之后,在以下应用的AndroidManifest.xml文件都找到了能处理这个请求的activity:
packages/apps/Gallery
packages/apps/Launcher2
packages/wallpapers/LivePicker
再看看下面的这个图:


壁纸对应的是Launcher2里面的WallpaperChooser.activity。动态壁纸对应的是packages/wallpapers/LivePicker的LiveWallpaperListActivity,他们的共同点 就是在AndroidManifest.xml都有

如下定义,或许你有了些许明白,看下http://groups.google.com/group/android-developers/browse_thread/thread/9d376a94066057a4这里面的解释,我英语不是太好,按照我自己的理解就是,你如果像下面这样
建立一个intent chooser,系统会寻找所有activity,然后把有
定义的activity形成列表提供给使用者。为了验证我的想法,个人写了一个很简单的小例子,MainActivity代码如下:
还有一个demo,代码如下

demo.xml文件里面只有一个textview很简单。
然后是AndroidManifest.xml文件:



注意:


我在这里面加了intent适配器
<action android:name="android.intent.action.SET_WALLPAPER" />


运行下程序,点击button按钮,效果如下:




我这个网速太不给力了,弄的心烦意燥,大家看到我自己写的demo在图片中得到了显示,这也是在上一篇http://blog.csdn.net/aomandeshangxiao/article/details/6767423中给大家看的图片,为什么我的选项多了一个。说到这里,想必大家都明白了这个原理了,中秋节还有几分钟就要到了,祝福大家中秋愉快。


上面所说的简单的小例子下载地址:http://download.csdn.net/detail/aomandeshangxiao/3593740

分享到:
评论

相关推荐

    Android应用源码之Intent.zip

    - Android系统根据Intent中的Action、Data和Category等信息,通过IntentFilter匹配最合适的组件进行调用。 7. **Intent的生命周期**: - 创建Intent对象,设置属性。 - 使用Intent启动目标组件。 - 目标组件...

    应用源码之Intent.zip

    本资料“应用源码之Intent.zip”聚焦于Intent的使用和实现细节,帮助开发者深入理解Android系统内部的工作原理。 Intent主要分为显式Intent和隐式Intent两种类型。显式Intent明确指定要启动的目标组件(Activity或...

    homebrew_launcher.v1.4.zip

    这个压缩包“homebrew_launcher.v1.4.zip”包含了安装和运行homebrew应用所需的组件。Homebrew是针对各种电子设备(如Wii U、Nintendo Switch等)的术语,指的是由社区开发者编写的非官方软件,这些软件可以执行系统...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    2. **Launcher的工作原理**:Launcher负责加载应用图标,处理用户的触摸事件,以及管理主屏幕上的小部件和快捷方式。它通过Binder机制与其他系统服务通信,获取应用信息和用户权限。 3. **编译Android源码**:要...

    android手把手教你开发launcher[整理].pdf

    要开发自己的 Launcher 应用程序,需要在 AndroidManifest.xml 文件中添加相应的 Intent Filter,包括 android.intent.action.MAIN、android.intent.category.LAUNCHER、android.intent.category.HOME 和 android....

    安卓Android源码——Launcher源码修改可编译.zip

    在这个"安卓Android源码——Launcher源码修改可编译.zip"文件中,你将有机会接触到Android系统的核心部分,并学习如何对源码进行编译和调试。 首先,Android源码分为几个主要部分,包括系统库、框架层、运行时环境...

    Android Launcher 源码修改可编译.zip项目安卓应用源码下载

    Android Launcher 源码修改可编译.zip项目安卓应用源码下载Android Launcher 源码修改可编译.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    android Launcher2.2源码

    源码中的`com.android.launcher.Launcher`类便是这个Activity的实现。 2. **数据存储与获取** Android Launcher2.2使用SQLite数据库来存储用户的布局信息,如快捷方式的位置、文件夹内容等。`...

    Android_launcher的源码详细分析.pdf

    1. Launcher.java:Launcher 中的主要活动,负责处理用户交互和界面更新。 Launcher.java 是整个 Launcher 的入口,负责处理用户的交互和界面更新。它实现了许多重要的功能,例如处理用户的点击事件、长按事件、...

    Android 静默安装和静默卸载(SilentInstaller)

    Intent intent = new Intent("android.intent.action.SILENT_PACKAGE_INSTALL"); intent.putExtra("silent_install_file", "/sdcard/Helloworld.apk"); intent.putExtra("silent_install_auto_start", true);//...

    Android高级应用源码-Android Launcher 源码修改可编译.zip

    《深入解析Android Launcher源码:实现可编译的高级应用》 在移动操作系统的世界中,Android以其开源性和灵活性深受开发者喜爱。本资料包提供的是一个经过修改,可编译的Android Launcher源码,旨在帮助开发者深入...

    Andriod8.0 Launcher3源码

    本篇将深入探讨Android 8.0 Launcher3的源码,以便理解其工作原理和设计思路。 1. **项目结构** Android Studio工程中的Launcher3源码通常按照MVC(Model-View-Controller)架构组织。主要包含以下几个部分: - ...

    org.eclipse.equinox.launcher.win32.win32.x86_64.jar

    Eclipse-plugins 插件,eclipse 各种插件 .jar 包,免费下载 eclipse202106 -plugins 各种插件 .jar 包,免费下载 如果下载不了,关注我,评论区联系我,

    Android Launcher 源码修改可编译.zip源码资源下载

    Android Launcher 是Android操作系统的核心组成部分,它是用户与系统交互的初始界面,负责展示应用程序图标、桌面小部件等。本文将深入探讨Android Launcher的源码结构、关键组件以及如何进行修改和编译。 首先,...

    Android应用源码之Intent_ComponentSample_Intent.zip

    Intent Filter包含Action、Data和Category,当Intent中的这些信息与Filter匹配时,组件才能响应Intent。 8. **BroadcastReceiver** BroadcastReceiver是接收Intent广播的组件,可以监听系统或自定义的广播事件。在...

    Android应用源码之Launcher2_源码.zip

    本篇文章将详细探讨Android应用源码中的Launcher2,这是一版经典的启动器实现,对我们理解Android系统的工作原理具有重要意义。 一、Launcher2简介 Launcher2是Android早期版本中默认的桌面应用,它为用户提供了一...

    ADW.Launcher.v1.3.6.apk

    ADW.Launcher.v1.3.6.apk ADW.Launcher.v1.3.6.apk ADW.Launcher.v1.3.6.apk ADW.Launcher.v1.3.6.apk ADW.Launcher.v1.3.6.apk ADW.Launcher.v1.3.6.apk ADW.Launcher.v1.3.6.apk

    安卓Android源码——Intent1.rar

    通过研究这个“安卓Android源码——Intent1.rar”中的内容,开发者可以学习到如何创建 Intent,如何设置 Intent 的各个属性,以及如何利用 Intent Filter 实现组件间的交互。这将有助于提升对 Android 应用程序架构...

    android intent使用定义标题

    可以使用 Intent.createChooser() 的方法来创建 Intent,并传入想要的 Sting 作为标题。 以wallpaper 选择框为例,当在Launcher workspace的空白区域上长按,会弹出wallpaper的选择框,选择框的标题为”Choose ...

Global site tag (gtag.js) - Google Analytics