Most visited

Recently visited

Added in API level 3
Deprecated since API level 14

LiveFolders

public final class LiveFolders
extends Object implements BaseColumns

java.lang.Object
   ↳ android.provider.LiveFolders


此类在API级别14中已被弃用。
Android不再支持实时文件夹。 这些已被HONEYCOMB中引入的新的AppWidget Collection API HONEYCOMB 这些提供了活动文件夹的所有功能以及更多功能。 由于他们介绍的安全问题,使用活动文件夹大大受到阻碍 - 发布活动文件夹需要将活动文件夹的所有数据显示为可供所有应用程序使用,而无需保护它们的权限。

LiveFolder是一个特殊的文件夹,其内容由ContentProvider提供。 要创建活动文件夹,需要两个组件:

Lifecycle

当用户想要创建活动文件夹时,系统将使用意向过滤器操作ACTION_CREATE_LIVE_FOLDER查找所有活动,并将列表呈现给用户。 当用户选择其中一个活动时,将使用ACTION_CREATE_LIVE_FOLDER操作调用该活动。 然后,该活动将创建活动文件夹,并通过将其设置为activity result将其传回系统。 活动文件夹由内容提供者URI,名称,图标和显示模式描述。 最后,当用户打开活动文件夹时,系统查询内容提供者以检索文件夹的内容。

Setting up the live folder activity

以下代码示例演示如何编写一个创建活动文件夹的活动:

 public static class MyLiveFolder extends Activity {
     public static final Uri CONTENT_URI = Uri.parse("content://my.app/live");

     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         final Intent intent = getIntent();
         final String action = intent.getAction();

         if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) {
             setResult(RESULT_OK, createLiveFolder(this, CONTENT_URI, "My LiveFolder",
                     R.drawable.ic_launcher_contacts_phones));
         } else {
             setResult(RESULT_CANCELED);
         }

         finish();
     }

     private static Intent createLiveFolder(Context context, Uri uri, String name,
             int icon) {

         final Intent intent = new Intent();

         intent.setData(uri);
         intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, name);
         intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON,
                 Intent.ShortcutIconResource.fromContext(context, icon));
         intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST);

         return intent;
     }
 }
 

活动文件夹由 Intent描述如下:

Component Type 描述 Required
URI URI The ContentProvider URI Yes
EXTRA_LIVE_FOLDER_NAME Extra String The name of the live folder Yes
EXTRA_LIVE_FOLDER_ICON Extra Intent.ShortcutIconResource The icon of the live folder Yes
EXTRA_LIVE_FOLDER_DISPLAY_MODE Extra int The display mode of the live folder. The value must be either DISPLAY_MODE_GRID or DISPLAY_MODE_LIST. Yes
EXTRA_LIVE_FOLDER_BASE_INTENT Extra Intent When the user clicks an item inside a live folder, the system will either fire the intent associated with that item or, if present, the live folder's base intent with the id of the item appended to the base intent's URI. No

Setting up the content provider

活动文件夹的内容提供者在查询后必须返回一个 Cursor其列与以下名称匹配:

Column Type 描述 Required
NAME String The name of the item Yes
DESCRIPTION String The description of the item. The description is ignored when the live folder's display mode is DISPLAY_MODE_GRID. No
INTENT Intent The intent to fire when the item is clicked. Ignored when the live folder defines a base intent. No
ICON_BITMAP Bitmap The icon for the item. When this column value is not null, the values for the columns ICON_PACKAGE and ICON_RESOURCE must be null. No
ICON_PACKAGE String The package of the item's icon. When this value is not null, the value for the column ICON_RESOURCE must be specified and the value for the column ICON_BITMAP must be null. No
ICON_RESOURCE String The resource name of the item's icon. When this value is not null, the value for the column ICON_PACKAGE must be specified and the value for the column ICON_BITMAP must be null. No

Summary

Constants

String ACTION_CREATE_LIVE_FOLDER

活动操作:创建一个活动文件夹。

String DESCRIPTION

内容提供者列。

int DISPLAY_MODE_GRID

在网格中显示活动文件夹的内容。

int DISPLAY_MODE_LIST

在列表中显示活动文件夹的内容。

String EXTRA_LIVE_FOLDER_BASE_INTENT

用于定义活动文件夹的基本意图的额外名称。

String EXTRA_LIVE_FOLDER_DISPLAY_MODE

用于定义活动文件夹的显示模式的额外名称。

String EXTRA_LIVE_FOLDER_ICON

用于定义活动文件夹图标的额外名称。

String EXTRA_LIVE_FOLDER_NAME

用于定义活动文件夹名称的额外名称。

String ICON_BITMAP

内容提供者列。

String ICON_PACKAGE

内容提供者列。

String ICON_RESOURCE

内容提供者列。

String INTENT

内容提供者列。

String NAME

内容提供者列。

Inherited constants

From interface android.provider.BaseColumns

Inherited methods

From class java.lang.Object

Constants

ACTION_CREATE_LIVE_FOLDER

Added in API level 3
String ACTION_CREATE_LIVE_FOLDER

活动操作:创建一个活动文件夹。

输入:没有。

输出:表示活动文件夹的意图。 意图必须包含四个附加内容:EXTRA_LIVE_FOLDER_NAME(value:String),EXTRA_LIVE_FOLDER_ICON(value:ShortcutIconResource),EXTRA_LIVE_FOLDER_URI(value:String)和EXTRA_LIVE_FOLDER_DISPLAY_MODE(value:int)。 意图可以选择性地包含EXTRA_LIVE_FOLDER_BASE_INTENT(值:意图)。

也可以看看:

常量值:“android.intent.action.CREATE_LIVE_FOLDER”

DESCRIPTION

Added in API level 3
String DESCRIPTION

内容提供者列。

活动文件夹项目的说明。 如果活动文件夹的显示模式为DISPLAY_MODE_GRID则此值将被忽略。

可选的。

类型:字符串。

也可以看看:

常量值:“描述”

DISPLAY_MODE_GRID

Added in API level 3
int DISPLAY_MODE_GRID

在网格中显示活动文件夹的内容。

也可以看看:

常数值:1(0x00000001)

DISPLAY_MODE_LIST

Added in API level 3
int DISPLAY_MODE_LIST

在列表中显示活动文件夹的内容。

也可以看看:

常量值:2(0x00000002)

EXTRA_LIVE_FOLDER_BASE_INTENT

Added in API level 3
String EXTRA_LIVE_FOLDER_BASE_INTENT

用于定义活动文件夹的基本意图的额外名称。

也可以看看:

常量值:“android.intent.extra.livefolder.BASE_INTENT”

EXTRA_LIVE_FOLDER_DISPLAY_MODE

Added in API level 3
String EXTRA_LIVE_FOLDER_DISPLAY_MODE

用于定义活动文件夹的显示模式的额外名称。

也可以看看:

常量值:“android.intent.extra.livefolder.DISPLAY_MODE”

EXTRA_LIVE_FOLDER_ICON

Added in API level 3
String EXTRA_LIVE_FOLDER_ICON

用于定义活动文件夹图标的额外名称。

也可以看看:

常量值:“android.intent.extra.livefolder.ICON”

EXTRA_LIVE_FOLDER_NAME

Added in API level 3
String EXTRA_LIVE_FOLDER_NAME

用于定义活动文件夹名称的额外名称。

也可以看看:

常量值:“android.intent.extra.livefolder.NAME”

ICON_BITMAP

Added in API level 3
String ICON_BITMAP

内容提供者列。

活动文件夹项目的图标,作为自定义位图。

可选的。

类型: Bitmap

常量值:“icon_bitmap”

ICON_PACKAGE

Added in API level 3
String ICON_PACKAGE

内容提供者列。

包哪里可以找到活动文件夹项目的图标。 使用fromContext(android.content.Context, int)可以轻松获得该值。

可选的。

类型:字符串。

也可以看看:

常量值:“icon_package”

ICON_RESOURCE

Added in API level 3
String ICON_RESOURCE

内容提供者列。

活动文件夹项目的资源名称。 使用fromContext(android.content.Context, int)可以轻松获得该值。

可选的。

类型:字符串。

也可以看看:

常量值:“icon_resource”

INTENT

Added in API level 3
String INTENT

内容提供者列。

活动文件夹项目的含义。

如果活动文件夹具有基本意图,则为可选。

类型: Intent

也可以看看:

常数值:“意图”

NAME

Added in API level 3
String NAME

内容提供者列。

活动文件夹项目的名称。

需要。

类型:字符串。

常量值:“名称”

Hooray!