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

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 源码修改可编译.zip项目安卓应用源码下载

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

    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 Launcher2.2源码

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

    Android_launcher的源码详细分析.pdf

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

    Andriod8.0 Launcher3源码

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

    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源码,旨在帮助开发者深入...

    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早期版本中默认的桌面应用,它为用户提供了一...

    android手把手教你开发launcher(AndroidStudio版)

    在我们的例子中,SAOLauncher现在能被系统识别为一个候选的Launcher应用,并能与其它Launcher如Xperia主页一同出现在选择列表中。 知识点七:Launcher应用的测试 在开发Launcher应用的过程中,需要在真实设备或...

    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 action整理

    在Android开发中,Intent作为一个重要的组成部分,扮演着连接各个组件的角色。它不仅能够实现组件间的简单数据传递,还能够执行更为复杂的功能,比如调用拨号功能、处理接收短信等。通过设置Intent的不同属性,...

Global site tag (gtag.js) - Google Analytics