Android桌面组件开发之实时文件夹(Live_Folders)
实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件。
有定义就可以知道,必须要定义一个ContentProvider,或者用系统自带的ContentProvider,系统自带的Contacts(联系人)程序已经实现了对实时文件夹的支持(关于如何实现自己的ContentProvider,并支持实时文件夹,下次笔记总结)。
MyAllContacts.java文件代码:
Code:
1. package com.myAllContacts.test;
2.
3. import android.app.Activity;
4. import android.content.Intent;
5. import android.net.Uri;
6. import android.os.Bundle;
7. import android.provider.Contacts;
8. import android.provider.LiveFolders;
9.
10. public class MyAllContacts extends Activity {
11. public static final Uri LIVE_FOLDER_URI = Uri
12. .parse("content://contacts/live_folders/people");
13.
14. /** Called when the activity is first created. */
15. @Override
16. public void onCreate(Bundle savedInstanceState) {
17. super.onCreate(savedInstanceState);
18.
19. /*if (getIntent().getAction().equals(
20. * 我认为这里无需判断,既然已经在AndroidMainfest.xml文件里配置了,如若能打开这个Activity,
21. * 证明这个判断就通过,这里就多此一举。
22. LiveFolders.ACTION_CREATE_LIVE_FOLDER)) {*/
23. Intent intent = new Intent();
24. intent.setData(LIVE_FOLDER_URI);
25. intent
26. .putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME,
27. "MyAllContacts");
28. intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT,
29. new Intent(Intent.ACTION_VIEW, Contacts.People.CONTENT_URI));
30. intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON,
31. Intent.ShortcutIconResource.fromContext(this,
32. R.drawable.my_icon));
33. intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE,
34. LiveFolders.DISPLAY_MODE_LIST);
35. setResult(RESULT_OK, intent);
36. /*} else {*/
37. //setResult(RESULT_CANCELED);
38. //}
39.
40. finish();
41.
42. }
43. }
AndroidManifest.xml
Code:
1. <?xml version="1.0" encoding="utf-8"?>
2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3. package="com.myAllContacts.test"
4. android:versionCode="1"
5. android:versionName="1.0">
6. <application android:icon="@drawable/icon" android:label="@string/app_name">
7. <activity android:name=".MyAllContacts"
8. android:label="@string/app_name">
9. <intent-filter>
10. <action android:name="android.intent.action.CREATE_LIVE_FOLDER" />
11. <category android:name="android.intent.category.DEFAULT" />
12. </intent-filter>
13. </activity>
14.
15. </application>
16. <uses-sdk android:minSdkVersion="8" />
17.
18. </manifest>