实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件。要创建一个实时文件夹,必须要有两方面的支持。一方面是,要定义一个用来创建实时文件夹的Activity。另一方面是,所指定数据信息URI的ContentProvider必须支持实时文件夹的查询。
本人对于实现最基本的通讯录打电话简单操作俩种方法,并且我都进行了尝试,不过对于其中一种方法实现实在过于复杂,因为牵扯到众多不同种Cursor的应用,在这里本人得到了一个较为简单的方法实现想要的效果,还是先将图片能上来看其效果吧!

点击之后
这是我通讯录里出现的人的设置,随机点击一个
得到我们最终想要的结果!
下面我们来看一下具体的操作设置:
首先是编辑AndroidManifest.xml文件
<?xml
version="1.0"
encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zzy.folder"
android:versionCode="1"
android:versionName="1.0"
>
<uses-sdk
android:minSdkVersion="10"
/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
>
<activity
android:name=".LivefoldersActivity"
android:label="@string/app_name"
>
<intent-filter>
<action
android:name="android.intent.action.MAIN"
/>
<category
android:name="android.intent.category.LAUNCHER"
/>
<action
android:name="android.intent.action.CREATE_LIVE_FOLDER"
/>
<category
android:name="android.intent.category.DEFAULT"
/>
</intent-filter>
</activity>
</application>
</manifest>
下面是XML文件的设计:
<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
要说明的是android.intent.extra.livefolder.BASE_INTENT这一附加信息,它的值是一个Intent对象。在用户单击展开实时文件夹后的选项时,首先该Intent对象的Data中的URI会附加上所点选项的ID,然后传入Launcher调用的startActivity方法中以启动所期望的Activity。这里我们把BASE_INTENT设置成了Actionandroid.intent.action.View、URI为content://contacts/people/的Intent对象。具体操作下面显示:
下面需要onCreate方法中将实现文件夹的相关信息装入Intent,并通过setResult方法设置为Intent,最后调用finish方法结束,并把结果返回给Home应用程序,以添加实施文件夹:
public
class LivefoldersActivity
extends Activity {
public
static
final Uri
LIVE_FOLDER_URI = Uri
.parse("content://contacts/live_folders/people");
/** Called when the activity is first created. */
@Override
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*if (getIntent().getAction().equals(
* 我认为这里无需判断,既然已经在AndroidMainfest.xml文件里配置了,如若能打开这个Activity,
* 证明这个判断就通过,这里就多此一举。
LiveFolders.ACTION_CREATE_LIVE_FOLDER)) {*/
Intent intent = new Intent();
intent.setData(LIVE_FOLDER_URI);
//设置文件夹的名字
intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME,"MyAllContacts");
//这是最重要的设置
设置其动作ACtion
intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT,
new Intent(Intent.ACTION_VIEW,
ContactsContract.Contacts.CONTENT_URI));
//设置图片
intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON,
Intent.ShortcutIconResource.fromContext(this,
R.drawable.attached_image_placeholder));
//设置其显示效果为列表显示
intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE,
LiveFolders.DISPLAY_MODE_LIST);
setResult(RESULT_OK, intent);
/*} else {*/
//setResult(RESULT_CANCELED);
//}
finish();
}
}
最后还是要说一下有些资料参考书上写的数据源为“Content://contacts/live_folders/people”
即为联系人的信息 这确实没错,但我尝试他们点击之后的事件设置即为Intent.ACTION_CALL,发现其貌似存在很大的错误这无法直接设置进行拨打电话!所以这点需要注意!
分享到:
相关推荐
标题中的“PyPI 官网下载 | flask_multiple_static_folders-1.0.tar.gz”表明这是一个在Python Package Index(PyPI)上发布的软件包,名为`flask_multiple_static_folders`,版本为1.0,格式为tar.gz。PyPI是Python...
Python库`sync_folders-1.2.1-py3-none-any.whl`是一个用于同步文件夹的工具,专为Python 3设计。这个压缩包包含了该库的预编译版本,用户可以直接安装而无需编译源代码,这极大地方便了开发者的使用。在Python生态...
在Android开发中,实时文件夹(Live Folders)是一个特性,允许用户在主屏幕上创建一个动态的快捷方式,展示由ContentProvider提供数据的实时更新。这个功能尤其适用于那些需要显示实时信息的应用,如联系人、音乐...
"green_folders"这一主题似乎是一个创新的文件夹样式设计,它采用全绿色调,旨在提供一种新颖、醒目的视觉体验,以提高用户在众多文件中的辨识度和工作效率。在这个数字化的时代,个性化和定制化的用户界面(UI)...
针对“fileSolution.zip_垃圾文件夹_Python__垃圾文件夹_Python_”这个标题,我们可以理解为这是一个关于使用Python处理垃圾文件夹的解决方案,可能是为了删除空文件夹或者批量移动文件并随后清理空文件夹。...
unity 插件 Rainbow Folders 2(彩色文件夹)
Text2Folders 从字面上看,是一个Txt转目录的软件,不过那样翻译就太直接了,不难理解的是,本软件可以利用txt 文件建立大量文件夹! 建立一个txt文档,每行输入一个文件夹名字,选好 txt 文件以及主目录,瞬间...
资源来自pypi官网。 资源全名:sync_folders-1.2.1-py3-none-any.whl
Unity3d 编辑器扩展 文件夹效果增强插件,可以任意设置文件夹的图标,颜色,类型,方便复杂项目的资源管理分类,提高效率。 仅供学习交流使用,如有侵权请告知删除。
《批量新建文件夹利器——Folders Sequence Creator v1.1绿色单文件版详解》 在日常工作中,我们常常需要创建大量的文件夹,例如整理项目资料、归档数据等。手动逐个新建不仅耗时,而且容易出错。为了解决这个问题...
自己写的一个目录同步工具,可以从源目录向目标目录同步内容,适合简单文件夹备份。 使用方法: 1. 解压后将sync_folders.exe和sync_folders.csv文件放到同一目录 2. 用文本工具打开sync_folders.csv,配置需要同步...
资源分类:Python库 所属语言:Python 资源全名:heaserver_folders-1.0.0a18-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
`create_folders`函数接受两个参数:要创建的文件夹数量和文件夹名列表。在示例中,我们用列表推导式生成了从'folder1'到'folder5'的文件夹名。 标签“自动化”表明了这个脚本的目标是减少手动操作,提高效率。...
Sync Folders 是一款Mac上的文件夹同步工具,最大的特点是简单易用,支持及时同步、计划同步和手动同步等,还支持文件过滤,除了本地磁盘外,也支持移动硬盘、U盘等外部存储和网络存储
在Unity引擎中,创建文件夹是一项基础但至关重要的任务,特别是在构建游戏或...了解每个文件夹的用途并正确创建它们,可以极大地提高开发效率。通过编写C#脚本,你可以实现一键创建常用文件夹,使得项目设置更加便捷。
Live folders则是能够让用户直接在桌面上看到文件夹内容的实时更新,提升了用户体验。 教程还可能讲解蓝牙功能的改进。在Android 1.5中,蓝牙通信的稳定性和兼容性得到了提升,开发者可以更方便地实现蓝牙设备之间...
在IT行业中,自动化是提升效率的关键工具之一,尤其是在处理重复性任务时。"create_lecture_folders"项目就是这样一个例子,它旨在自动化的完成课程文件夹的创建工作。这个项目使用了Python编程语言,使得我们可以...
- 修改设置后,已有的旧缓存文件不会自动转移到新位置,需要手动清理旧的缓存文件夹。 - 如果遇到任何问题,可以参考说明.txt文件中的指导,或寻求专业技术人员的帮助。 通过正确使用Chrome文件缓存路径设置工具v3...
"Rainbow Folders" 是一个实用工具,它允许用户自定义电脑中文件夹的颜色,以实现更加个性化和高效的文件管理。这个程序的核心功能是通过改变文件夹图标背景颜色,使得在众多文件夹中能快速识别出特定的文件夹,这...