能力是 HarmonyOS 应用程序可以提供的功能的抽象。HarmonyOS 应用程序的能力分为两种类型:特征能力和粒子能力。功能功能代表具有 UI 的功能,并旨在与用户进行交互。粒子能力表示没有 UI 的能力,并且主要用于提供对 FA 的支持,例如,提供计算功能作为后台服务或提供数据访问功能作为数据存储库。两种功能为您提供了不同的模板,以供您实现不同的功能。当前,HarmonyOS 提供以下类型的能力模板:
注意:在下面的描述中,页面,服务或数据功能表示使用相应模板的功能,而单独的功能表示使用任何类型的模板的功能。
- 页面:显示 UI 的功能。UI 通过 AbilitySlice 呈现。您必须重写 onStart(ohos.aafwk.content.Intent)方法,并使用 setMainRoute(java.lang.String) 和addActionRoute(java.lang.String,java.lang.String)方法来配置 Page 功能的条目。
- 服务:一种在后台运行且没有 UI 的功能。它用于开发始终在后台运行或与其他功能连接的服务。当服务能力与其他能力连接时,将返回一个远程对象,您可以使用该远程对象来调用该服务能力提供的功能。
- 数据:一种用于操作数据且没有 UI 的功能。它提供了用于插入,删除,更新和查询数据以及打开文件的方法。您必须实现这些方法。
能力简介
每个应用程序都有一个配置文件:config.json。该文件存储在Java代码的根目录中。
├── entry
│ ├── libs
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myapplication
│ │ │ │ ├── slice
│ │ │ │ │ └── PageAbilitySlice.java
│ │ │ │ └── PageAbility.java
│ │ │ ├── resources
│ │ │ │ ├── base
│ │ │ │ │ ├── element
│ │ │ │ │ │ └── string.json
│ │ │ │ │ └── media
│ │ │ │ │ └── icon.png
│ │ │ │ └── rawfile
│ │ │ └── config.json
应用程序文件结构的说明如下:
该条目存储应用程序的代码,资源文件和配置文件。文件夹名称是可编辑的。
entry / libs 存储第三方库文件。创建项目时,IDE 将自动生成此目录。
entry / src / main / java 用于代码开发。您可以根据需要在此目录中更改文件名。创建项目时,IDE 将自动生成此目录。
entry / src / main / resources / base / media为您的应用程序存储 PNG 和 JPG 图像文件。创建项目时,IDE 将自动生成此目录。
entry / src / main / resources / base / element存储用于读取文本资源的资源文件。创建项目时,IDE 将自动生成此目录。
该入口/ src 目录/主/ config.json 文件位于主根目录。该文件包含有关应用程序的配置信息。系统运行该应用程序,并基于此文件的内容在 UI 上显示内容。创建项目时,IDE 将自动生成此文件。
要开发新能力,您必须在 config.json 文件中注册该能力。示例代码:
{
"module":{
...
"abilities":[
{
...
"description": "Main ability of hiworld",
"name": ".MainAbility",
"label": "main ability",
"icon": "main-ability.png",
"type": "page",
"visible": true,
"orientation": "unspecified",
"launch-mode": "standard",
...
}
]
...
}
}
注意:应用程序的所有功能都必须在此文件中注册,并附加到功能标签上。
- 类型标签指示能力使用的模板的类型,其值页面,服务或提供者分别指示页面,服务或数据模板。必须指定类型标签。
- 名称标签表示能力的名称,必须指定。
- 您可以保留其他标签的默认值。
能力生命周期
作为应用程序的基本单元,功能具有以下四个生命周期状态:
- 初始:该异能已加载到内存中但未运行。这是所有能力的初始状态。
- 不活跃:该功能已加载并执行,但不是交互式的。通常,在能力更改为 ACTIVE 或 Background 之前处于中间状态。在这种状态下,UI 可能可见,但无法接收输入事件。
- 活动:该功能可见且具有交互性。认为该能力具有焦点。
- 背景:这种能力是看不见的。如果系统内存不足,则会首先破坏此状态下的功能。
下图显示了完整的能力生命周期。每个状态转换都会执行一个特定的回调。您可以覆盖回调方法。
注意:所有页面功能都必须实现 onStart(ohos.aafwk.content.Intent) 来设置其 UI。要覆盖生命周期回调方法,必须首先调用与父类相对应的回调方法,例如 super.onStart()。状态转换在主线程上实现。因此,建议您在生命周期回调中执行简短逻辑,以防止该功能的主线程被阻塞。
以下是该功能的所有生命周期回调方法:
public class MainAbility extends Ability {
protected void onStart(Intent intent);
protected void onActive();
protected void onInactive();
protected void onForeground(Intent intent);
protected void onBackground();
protected void onStop();
}
有关生命周期回调的详细信息,请参见 AbilitySlice。
起始能力
这个起动性(ohos.aafwk.content.Intent)方法用于启动一个新的能力,其被放置在能力堆栈的顶部。它使用参数 Intent 来描述能力。以下代码显示了如何启动异能:
Button button = new Button(this);
button.setClickedListener(listener -> {
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")
.withBundleName("com.huawei.hiworld")
.withAbilityName("com.huawei.hiworld.MainAbility")
.build();
Intent intent = new Intent();
intent.setOperation(operation);
intent.setParam("age", 10);
startAbility(intent);
});
连接能力
这个连接性(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)方法用于连接到服务的能力。它具有两个参数:Intent 和 IAbilityConnection。Intent 提供有关目标服务连接能力的信息,IAbilityConnection 是一个回调对象,用于通知您连接结果(成功或失败)。
与connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)相比,disconnectAbility(ohos.aafwk.ability.IAbilityConnection)方法用于与已连接的服务能力断开连接。
对于服务功能,您可以重写 onConnect(ohos.aafwk.content.Intent)方法以提供一个 RemoteObject 进行调用。默认情况下,返回null。
protected IRemoteObject onConnect(Intent intent) {
return null;
}
嵌套类摘要
领域摘要
构造器摘要
方法总结
修饰符和类型 |
方法 |
描述 |
void |
addActionRoute(String操作,String输入) |
将动作绑定到 AbilitySlice。 |
整型 |
batchInsert(Uri uri,ValuesBucket []值) |
将多个数据记录插入数据库。 |
PacMap |
调用(String方法,String arg,PacMap 附加功能) |
在此数据功能中定义一个方法(实现取决于子类)。 |
void |
cancelBackgroundRunning() |
取消此功能的后台运行以释放系统内存。 |
布尔值 |
connectAbility(Intent intent,IAbilityConnection conn) |
将能力连接到服务能力。 |
void |
continueAbility() |
将此功能迁移到同一分布式网络上的另一台设备。 |
void |
continueAbility(String deviceId) |
将此功能迁移到同一分布式网络上的给定设备。 |
void |
continueAbilityReversible() |
以可逆的方式将此功能迁移到同一分布式网络上的另一台设备,该功能允许将该功能通过reverseContinueAbility()迁移回本地设备。 |
void |
continueAbilityReversible(String deviceId) |
以可逆的方式将此功能迁移到同一分布式网络上的给定设备,该功能允许将该功能通过 reverseContinueAbility()迁移回本地设备。 |
整型 |
删除(Uri uri,DataAbilityPredicates 谓词) |
删除一个或多个数据记录。 |
Uri |
denormalizeUri(Uri uri) |
将 normalizeUri(ohos.utils.net.Uri)生成的给定归一化 uri 转换为非归一化的 uri 。 |
void |
断开连接能力(IAbilityConnection conn) |
与 connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection) 相比,断开服务能力与服务能力的连接。 |
void |
dispatchAccessibilityEventInfo(AccessibilityEventInfo 信息) |
在此功能的组件上发生可访问性事件时调用。 |
DataAbilityResult [] |
executeBatch (ArrayList < DataAbilityOperation >操作) |
在数据库上执行批处理操作。 |
Component |
findComponentById(int resID) |
根据资源 ID 在 XML 文件中查找组件。 |
AbilityPackage |
getAbilityPackage(AbilityInfo skillInfo) |
获取此功能所属的单例 AbilityPackage 对象。 |
Object |
getAVController() |
获得能力的Window媒体控制器。 |
ContinuationState |
getContinuationState() |
获得此功能的迁移状态。 |
Component |
getCurrentFocus() |
获取当前具有Window焦点的组件。 |
Transition |
getEnterTransition() |
获取能力输入过渡类型。 |
String [] |
getFileTypes(Uri uri,String mimeTypeFilter) |
获取文件的 MIME 类型。 |
Intent |
getIntent() |
获取启动此功能的 Intent 对象。 |
WindowManager.LayoutConfig |
getLayoutParams() |
获取能力的Window布局参数。 |
Lifecycle |
getLifecycle() |
获取当前能力的Lifecycle对象。 |
String |
getOriginalDeviceId() |
获取从中迁移此功能的源设备的 ID。 |
Transition |
getReturnTransition() |
获取能力返回过渡类型。 |
ComponentContainer |
getRootUIContent() |
获取技能或顶级技能切片 ui 内容的根组件。 |
String |
getType(Uri uri) |
获取与“数据”功能的 URI 指定的数据匹配的 MIME 类型。 |
Window |
getWindow() |
获取与当前能力对应的Window。 |
布尔值 |
hasWindowFocus() |
检查此功能的主Window是否具有Window焦点。 |
整型 |
insert(Uri uri,ValuesBucket值) |
将数据记录插入数据库。 |
布尔值 |
isTerminate() |
检查当前能力是否被破坏。 |
void |
keepBackgroundRunning(int id,NotificationRequest notificationRequest) |
在后台保留此服务功能并显示通知栏。 |
Uri |
normalizeUri(Uri uri) |
通过支持此数据功能对 Uri 进行规范化将引用数据功能的给定 uri 转换为规范化 URI。 |
protected void |
onAbilityResult(int requestCode,int resultCode,Intent resultData) |
在调用 startAbilityForResult(ohos.aafwk.content.Intent,int)以启动功能并返回结果时调用。 |
protected void |
onActive() |
回叫时的能力进入 ACTIVE 状态。 |
protected void |
onBackground() |
技能进入背景状态时回调。 |
protected void |
onBackPressed() |
当按下返回键时回叫。 |
protected void |
onCommand(Intent intent,boolean restart) |
不推荐使用。 |
protected void |
onCommand(Intent intent,boolean restart,int startId) |
服务启动时回叫。 |
void |
onConfigurationUpdated(Configuration配置) |
在系统配置更新时调用。 |
protected IRemoteObject |
为onConnect(Intent intent ) |
当服务能力首次与该能力相关联时回调。 |
protectedAbilityForm |
onCreateForm() |
调用以返回 AbilityForm 对象。 |
protected void |
onDisconnect(Intent intent ) |
当与服务能力相关的所有能力都断开连接时回调。 |
void |
onEventDispatch() |
每次为此功能调度按键,触摸或轨迹球事件时调用。 |
protected void |
onForeground(Intent intent ) |
当技能的状态从背景变为不活跃时回调。 |
protected void |
onInactive() |
当某个异能进入 INACTIVE 状态时被回调(此状态下的异能不是交互式的,可能会变为Background 或 ACTIVE 状态)。 |
布尔值 |
onKeyDown(int keyCode,KeyEvent keyEvent) |
按下键时调用。 |
布尔值 |
onKeyUp(int keyCode,KeyEvent keyEvent) |
释放键时调用。 |
void |
onLeaveForeground() |
当此功能由于用户操作(例如,用户触摸 Home 键)而即将离开前台并进入背景时调用。 |
void |
onMemoryLevel(int级别) |
在系统确定修整内存时调用,例如,当该功能在后台运行并且没有足够的内存来运行尽可能多的后台进程时调用。 |
CharSequence |
onNewDescription() |
在此功能之前调用的是为该功能生成新描述的背景。 |
protected void |
onNewIntent(Intent Intent) |
在功能的启动模式设置为 singleInstance 时调用。 |
protected void |
onOrientationChanged(AbilityInfo.DisplayOrientation displayOrientation) |
当屏幕的显示方向改变时回调。 |
protected void |
onPostActive() |
在调用 onActive()之后完全激活该功能时调用。 |
protected void |
onPostStart(PacMap pacMap) |
通过调用 onStart(ohos.aafwk.content.Intent)和onRestoreAbilityState(ohos.utils.PacMap)启动功能时调用。 |
void |
onReconnect(Intent Intent) |
当新的客户端之前与之断开所有连接后,新客户端尝试连接至服务能力时调用。 |
void |
onRequestPermissionsFromUserResult(int requestCode,String []权限,int [] grantResults) |
使用AbilityContext.requestPermissionsFromUser(java.lang.String [],int)请求权限后回调。 |
void |
onRestoreAbilityState(PacMap inState) |
由系统恢复能力的数据和状态。 |
void |
onSaveAbilityState(PacMap outState) |
保存此功能的临时数据和状态。 |
protected void |
在onStart(Intent Intent) |
在一项功能开始初始化时回调(在该功能的整个生命周期中只能调用一次)。 |
protected void |
onStop() |
在消灭异能之前回叫。 |
protected boolean |
onTouchEvent(TouchEvent事件) |
在将触摸事件调度到此功能时调用。 |
void |
onWindowFocusChanged(boolean hasFocus) |
当此能力获得或失去Window焦点时调用。 |
FileDescriptor |
openFile(Uri uri,String模式) |
打开一个文件。 |
RawFileDescriptor |
openRawFile(Uri uri,String模式) |
打开一个原始文件。 |
ResultSet |
查询(Uri uri,String DataAbilityPredicates谓词) |
查询数据库中的一个或多个数据记录。 |
布尔值 |
reverseContinueAbility() |
将此功能从同一分布式网络上的另一台设备迁移回本地设备。 |
void |
setAbilitySliceAnimator(AbilitySliceAnimator skillSliceAnimator) |
在当前能力的 AbilitySlice 实例之间设置过渡动画。 |
void |
setAVController(Object控制器) |
设置能力的Window媒体控制器。包含Window媒体信息的媒体控制器。 |
void |
setEnterTransition(Transition过渡) |
设置能力输入过渡类型。 |
void |
setIntent(Intent Intent) |
设置可以通过调用 getIntent() 获得的 Intent 对象。 |
void |
setIsAmbientMode(boolean isEnabled) |
设置Window的输入 AOD 模式 |
void |
setLayoutParams(WindowManager.LayoutConfig参数) |
设置功能的Window布局参数。 |
void |
setMainRoute(String入口) |
设置此功能的主要路线。 |
void |
setResult(int resultCode,Intent resultData) |
设置此 Page 功能返回给调用方的结果代码和数据。 |
void |
setReturnTransition(Transition过渡) |
设置能力返回过渡类型。 |
布尔值 |
setSwipeToDismiss(boolean isEnabled) |
设置一个Window及其功能是否在滑动时完成。 |
void |
setUIContent(int layoutRes) |
通过使用布局资源 ID 来扩大布局资源。 |
void |
setUIContent(ComponentContainer componentContainer) |
通过使用ComponentContainer来膨胀 UI 控件。 |
void |
setWindowBackgroundColor(int红色,int绿色,int蓝色) |
在RGB颜色模式下设置Window的背景色。 |
void |
startAbility(IntentIntent) |
开始一项新技能。 |
void |
startAbility(Intent intent,AbilityOptions选项) |
从选项开始新技能。 |
void |
startAbilityForResult(Intent intent,int requestCode) |
启动一个异能并在该异能被销毁时返回执行结果。 |
布尔值 |
stopAbility(IntentIntent) |
摧毁另一种服务能力。 |
void |
终止能力() |
破坏此页面或服务功能。 |
整型 |
更新(Uri uri,ValuesBucket值,DataAbilityPredicates谓词) |
更新数据库中的一个或多个数据记录。 |
构造器详细信息
能力
公众能力
方法细节
获得AbilityPackage
公共 AbilityPackage getAbilityPackage((AbilityInfo skillInfo)
获取此功能所属的单例 AbilityPackage 对象。
返回值:
返回此能力所属的单例 AbilityPackage 对象。
获取窗口
公共Window getWindow()
获取与当前能力对应的Window。
您可以使用 Window 实例来控制Window的属性,例如Window大小,位置和填充。
返回值:
返回与当前能力相对应的Window。
设置UI内容
公共最终无效 setUIContent(int layoutRes)
通过使用布局资源ID来扩大布局资源。
参数:
参数名称 |
参数说明 |
layoutRes |
表示布局资源ID,不能为负数。 |
也可以看看:
setUIContent(ComponentContainer)
设置UI内容
公共无效 setUIContent((ComponentContainer componentContainer)
通过使用 ComponentContainer来膨胀 UI 控件 。
您可以创建一个包含多个组件的ComponentContainer实例。
参数:
参数名称 |
参数说明 |
componentContainer |
指示一组定制组件。 |
也可以看看:
setUIContent(int)
设置前级处理器
public void setAVController(Object控制器)
设置能力的Window媒体控制器。包含Window媒体信息的媒体控制器。
参数:
参数名称 |
参数说明 |
控制者 |
指示包含Window媒体信息的对象。此参数不能为空。 |
获取AV控制器
公共Object getAVController()
获得能力的Window媒体控制器。包含Window的媒体信息的媒体控制器。
返回值:
返回包含Window媒体信息的对象;如果未设置媒体控制器,则返回 null。
获取布局参数
public WindowManager.LayoutConfig getLayoutParams()
获取能力的Window布局参数。必须为所有功能的Window设置布局参数。为父Window提供了这些参数,以指定如何布置当前功能的Window。
您可以使用布局参数来控制功能的Window属性,例如位置,长度和宽度。
返回值:
返回能力的Window布局参数;如果未设置布局参数,则返回 null。
设置布局参数
公共无效 setLayoutParams(WindowManager.LayoutConfig 参数)
设置功能的Window布局参数。为父Window提供了这些参数,以指定如何布置当前功能的Window。
您可以使用布局参数来控制功能的Window属性,例如位置,长度和宽度。
参数:
查找组件ById
公共Component findComponentById(int resID)
根据资源ID在XML文件中查找组件。
参数:
返回值:
如果找到记录,则返回与 ID 对应的组件;否则返回 null。
设置环境模式
公共无效 setIsAmbientMode(布尔 isEnabled)
设置Window的输入 AOD 模式
参数:
参数名称 |
参数说明 |
isEnabled |
指示是否启用了 AOD 模式 |
按下按键
公共布尔 onKeyDown(int keyCode,KeyEvent keyEvent)
按下键时调用。当“技能”中的任何组件获得焦点时,将首先处理该组件的按下事件。如果为组件的按下事件触发的回调返回 true,则不会调用此回调。此回调的默认实现不执行任何操作,并返回 false。
参数:
参数名称 |
参数说明 |
关键代码 |
指示按下的键的代码。 |
keyEvent |
指示按下事件。 |
返回值:
如果已处理此事件且将不进一步传递,则返回 true;否则,返回 false。如果未处理此事件,则应返回 false 并应将其传递给其他处理程序。
也可以看看:
onKeyUp(int,ohos.multimodalinput.event.KeyEvent)
在关键
布尔布尔 onKeyUp(int keyCode,KeyEvent keyEvent)
释放键时调用。当“技能”中的任何组件获得焦点时,将首先处理该组件的按键事件。如果为组件的按键事件触发的回调返回 true,则不会调用此回调。此回调的默认实现不执行任何操作,并返回 false。
参数:
参数名称 |
参数说明 |
关键代码 |
指示已释放密钥的代码。 |
keyEvent |
指示按键事件。 |
返回值:
如果已处理此事件且将不进一步传递,则返回 true;否则,返回 false。如果未处理此事件,则应返回 false 并应将其传递给其他处理程序。
也可以看看:
onKeyDown(int,ohos.multimodalinput.event.KeyEvent)
onBackPressed
受保护的void onBackPressed()
当按下返回键时回叫。
默认实现会破坏该功能。您可以覆盖此方法。
连接能力
public boolean connectAbility(Intent intent,IAbilityConnection conn)
将能力连接到服务能力。
Page 或 Service 功能可以调用此方法,但是连接的目的地必须是 Service 功能。连接服务功能后,必须实现IAbilityConnection 接口才能获取目标服务功能的代理。
调用Context必须已启动并且尚未销毁。否则,此方法返回 false。例如,当 AbilityForm 供应商在组件单击或触摸事件触发的回调中调用此方法时,可能会返回 false,因为供应商可能未启动。
指定者:
接口ContextconnectAbility
覆写:
类AbilityContext中的connectAbility
参数:
参数名称 |
参数说明 |
Intent |
指示服务连接能力。 |
conn |
指示连接服务功能时的回调对象。 |
返回值:
如果连接成功,则返回 true;否则,返回 false。否则返回 false。
throw:
也可以看看:
Context.connectAbility(Intent,IAbilityConnection)
断开能力
公共无效的 disconnectAbility((IAbilityConnection conn)
与 connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)相比,断开服务能力与服务能力的连接 。
指定者:
接口ContextdisconnectAbility
覆写:
disconnectAbility 类 AbilityContext
参数:
参数名称 |
参数说明 |
conn |
指示连接服务功能时的回调对象。 |
throw:
也可以看看:
Context.disconnectAbility(IAbilityConnection)
getLifecycle
公共最终 Lifecycle getLifecycle()
获取当前能力的 Lifecycle 对象。
指定者:
getLifecycle 接口 ILifecycle
返回值:
返回Lifecycle对象。
也可以看看:
Lifecycle
插
public int insert((Uri uri,ValuesBucket value)
将数据记录插入数据库。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示要插入数据的位置。 |
值 |
指示要插入的数据。 |
返回值:
返回新插入的数据记录的索引。
批量插入
public final int batchInsert(Uri uri,ValuesBucket [] values)
将多个数据记录插入数据库。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示要插入数据的位置。 |
价值观 |
指示要插入的数据。 |
返回值:
返回插入的数据记录数。
删除
public int delete(Uri uri,DataAbilityPredicates predicates)
删除一个或多个数据记录。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示存储要删除数据的数据库表。 |
谓词 |
表示过滤条件。如果此参数为 null,则默认情况下将删除所有数据记录。 |
返回值:
返回已删除的数据记录数。
更新
public int 更新(Uri uri,ValuesBucket value,DataAbilityPredicates predicates)
更新数据库中的一个或多个数据记录。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示存储要更新数据的数据库表。 |
值 |
指示要更新的数据。此参数可以为空。 |
谓词 |
表示过滤条件。如果此参数为null,则默认情况下将更新所有数据记录。 |
返回值:
返回更新的数据记录数。
询问
公共ResultSet查询(Uri uri,String [] columns,DataAbilityPredicates predicates)
查询数据库中的一个或多个数据记录。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
表示存储要查询的数据的数据库表。 |
列 |
指示要查询的列,以数组形式,例如{“ name”,“ age”}。当此参数为 null 时,您应该定义处理逻辑。 |
谓词 |
表示过滤条件。如果此参数为 null,则默认情况下将查询所有数据记录。 |
返回值:
返回查询的数据。
执行批处理
公共最终 DataAbilityResult [] executeBatch(ArrayList < DataAbilityOperation > operation)throws OperationExecuteException
在数据库上执行批处理操作。此方法应由数据能力实现。
要在数据库上执行的批处理操作封装为 DataAbilityOperation 对象。每个对象对应一个操作,例如,插入或删除。每个操作的调用结果将保存到 DataAbilityResult 类型的数据数组并由其返回。
参数:
参数名称 |
参数说明 |
运作 |
指示数据操作列表,其中可以包含对数据库的多项操作。 |
返回值:
以数组形式返回每个操作的结果。
throw:
打开文件
public FileDescriptor openFile(Uri uri,String mode)throws FileNotFoundException
打开一个文件。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示要打开的文件的路径。 |
模式 |
指示打开模式,对于只读访问可以为“ r”,对于只读访问可以为“ w”(擦除文件中当前存在的任何数据),对于截断任何现有文件的写访问可以为“ wt”,“ wa” “”表示仅写访问权限以追加到任何现有数据,“ rw”表示对任何现有数据的读写访问,“ rwt”表示对截断任何现有文件的读写访问。 |
返回值:
返回文件描述符的 FileDescriptor 对象。
Thorw:
openRawFile
public RawFileDescriptor openRawFile(Uri uri,String模式)throw FileNotFoundException
打开一个原始文件。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示要打开的原始文件的路径。 |
模式 |
指示打开模式,对于只读访问可以为“ r”,对于只读访问可以为“ w”(擦除文件中当前存在的任何数据),对于截断任何现有文件的写访问可以为“ wt”,“ wa” “”表示仅写访问权限以追加到任何现有数据,“ rw”表示对任何现有数据的读写访问,“ rwt”表示对截断任何现有文件的读写访问。 |
返回值:
返回包含文件描述符的 RawFileDescriptor 对象。
throw:
getFileTypes
public String [] getFileTypes((Uri uri,String mimeTypeFilter)
获取文件的 MIME 类型。此方法应由数据能力实现。
参数:
参数名称 |
参数说明 |
uri |
指示要获取的文件的路径。 |
mimeTypeFilter |
指示要获取的文件的 MIME 类型。此参数不能设置为 null。<br />1.“ / ”:获得数据能力支持的所有类型。<br />2.“ image / ”:获取主要类型为任何子类型的图像的文件。<br />3.“ / jpg”:获取其子类型为任何主要类型的 JPG 的文件。 |
返回值:
返回匹配文件的 MIME 类型;如果没有与数据能力匹配的类型,则返回 null。
呼叫
公共 PacMap 调用(String方法,String arg,PacMap 附加功能)
在此数据功能中定义一个方法(实现取决于子类)。
参数:
参数名称 |
参数说明 |
方法 |
指示方法名称。 |
arg |
指示方法传输的 String 参数。 |
extras |
表示该方法传输的 PacMap 参数。 |
返回值:
返回方法的 PacMap 结果。
获取类型
公共String getType((Uri uri)
获取与“数据”功能的 URI 指定的数据匹配的 MIME 类型。此方法应由数据能力实现。
数据功能支持常规数据类型,包括文本,HTML 和 JPEG。
参数:
返回值:
返回与 uri 指定的数据匹配的 MIME 类型。
onStart
受保护的 void onStart(Intent intent)
在一项功能开始初始化时回调(在该功能的整个生命周期中只能调用一次)。
大多数初始化操作应通过调用此方法来执行。例如,您可以使用当前方法调用setMainRoute(java.lang.String)和addActionRoute(java.lang.String,java.lang.String)来为 Page 功能设置主路由器和动作路由器。
参数:
参数名称 |
参数说明 |
Intent |
表示启动此功能时携带的信息。注意:对于服务技能,将传递 null。 |
onPostStart
受保护的 void onPostStart(PacMap pacMap)
通过调用 onStart(ohos.aafwk.content.Intent)和 onRestoreAbilityState(ohos.utils.PacMap)启动功能时调用 。
通常,此方法用于系统类在应用程序启动后执行最终的初始化操作。您不需要为您的应用程序实现此方法。重写此方法时,必须调用其父类的实现。否则,将引发异常。
参数:
参数名称 |
参数说明 |
pacMap |
指示 onSaveAbilityState(ohos.utils.PacMap)中最近提供的数据。 |
onStop
受保护的 void onStop()
在消灭异能之前回叫。
此方法指示能力生命周期的结束。可以在功能调用 terminateAbility()方
请发表评论