合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
Class Info |
|---|
public class SettingController 提供设置相关功能。 |
Qualifier and Type | Method Name and Description |
|---|---|
Task<DataType> | addDataType(DataTypeAddOptions options) 创建并添加自定义数据类型。 |
Task<Void> | 禁用Health Service Kit功能。 |
Task<Boolean> | 查询运动健康应用隐私管理是否关联Health Service Kit。 |
parseHealthKitAuthResultFromIntent(Intent intent) 从登录授权流程返回的Intent中解析授权结果。 | |
Task<DataType> | readDataType(String dataTypeName) 根据数据类型名称读取对应的自定义数据类型。 |
Intent | requestAuthorizationIntent(String[] scopes, boolean enableHealthAuth) 获取集成华为账号授权和华为运动健康App授权流程的Intent,可以通过startActivityForResult拉起授权流程页面。 |
Method |
|---|
public Task<DataType> addDataType(DataTypeAddOptions options) 创建并添加一个自定义数据类型。新创建的数据类型名称必须以应用程序的包名作为前缀,否则将会创建失败。 |
Parameters
Name | Description |
|---|---|
options | 创建新数据类型的请求选项。 |
Returns
Type | Description |
|---|---|
Task<DataType> | 创建并添加一个自定义数据类型。 |
public void addNewDataType(View view) {
// 新增的名字必须以包名开始,以自定义名字结尾
String dataTypeName = "com.myproject.demo";
// 创建需要添加的字段值
Field selectedField = Field.newDoubleField("myField");
// 创建一个DataTypeAddOptions
DataTypeAddOptions dataTypeAddOptions =
new DataTypeAddOptions.Builder().setName(dataTypeName).addField(selectedField).build();
// 添加新的数据类型
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this)
.addDataType(dataTypeAddOptions)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Log.i("TAG", "Add dataType failed");
}
})
.addOnCompleteListener(new OnCompleteListener<DataType>() {
@Override
public void onComplete(Task<DataType> task) {
String res = task.isSuccessful() ? "success" : "failed";
Log.i("TAG", "Add dataType " + res);
if (task.getException() != null) {
Log.i("TAG", "GetException is " + task.getException().toString());
}
}
});
}fun addNewDataType(view: View) {
// 新增的名字必须以包名开始,以自定义名字结尾
val dataTypeName = "com.myproject.demo"
// 创建需要添加的字段值
val selectedField = Field.newDoubleField("myField")
// 创建一个DataTypeAddOptions
val dataTypeAddOptions =
DataTypeAddOptions.Builder().setName(dataTypeName).addField(selectedField).build()
// 创建需要添加的域并添加新的数据类型
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this).addDataType(dataTypeAddOptions)
.addOnFailureListener { e -> printFailureMessage(e, "addNewDataType") }
.addOnCompleteListener { task ->
val res = if (task.isSuccessful) "success" else "failed"
Log.i("TAG","add dataType of $selectedFieldStr is $res")
if (task.exception != null) {
Log.i("TAG","getException is " + task.exception.toString())
}
}
}
}Method |
|---|
public Task<Void> disableHiHealth() 禁用Health Service Kit功能,取消用户授权(24小时后生效),删除所有数据记录。 |
Returns
Type | Description |
|---|---|
Task<Void> | 用来检查请求是否成功、失败、已完成的Task对象。 |
public void disableHiHealth(View view) {
// 取消所有记录
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this)
.disableHiHealth()
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Log.i("TAG", "Disable AutoRecorder failed");
}
})
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> task) {
String res = task.isSuccessful() ? "success" : "failed";
Log.i("TAG", "Disable AutoRecorder is " + res);
}
});
}fun disableHiHealth(view: View) {
// 取消所有记录
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this).disableHiHealth()
.addOnFailureListener { e -> printFailureMessage(e, "readTodaySummationFromDevice") }
.addOnCompleteListener { task ->
val res = if (task.isSuccessful) "success" else "failed"
Log.i("TAG","disableHiHealth is $res")
}
}
}Method |
|---|
public Task<DataType> readDataType(String dataTypeName) 根据数据类型名称读取数据类型,用于读取应用程序自定义的数据类型。 |
Parameters
Name | Description |
|---|---|
dataTypeName | 数据类型的名称。 |
Returns
Type | Description |
|---|---|
Task<DataType> | 根据数据类型名称读取数据类型。 |
public void readDataType(View view) {
// 获取数据类型的名字
String dataTypeName = "com.myproject.demo";
// 获取指定名字的数据类型
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this)
.readDataType(dataTypeName)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Log.i("TAG", "Read dataType failed");
}
})
.addOnCompleteListener(new OnCompleteListener<DataType>() {
@Override
public void onComplete(Task<DataType> task) {
Log.i("TAG", "DataType : " + task.getResult());
}
});
}fun readDataType(view: View) { // 获取数据类型的名字 val dataTypeName = "com.myproject.demo" // 获取指定名字的数据类型 // 返回的结果显示在手机屏幕上 // 请注意此处的this为Activity对象 HuaweiHiHealth.getSettingController(this).readDataType(dataTypeName) .addOnFailureListener { e -> printFailureMessage(e, "readDataType") } .addOnCompleteListener { task -> Log.i("TAG","DataType : " + task.result) } } }
Method |
|---|
public Task<Boolean> getHealthAppAuthorization() 查询运动健康应用隐私管理是否关联Health Service Kit。 |
Returns
Type | Description |
|---|---|
Task<Boolean> | 用户运动健康应用隐私授权到Health Service Kit的授权情况。
|
public void getHealthAppAuthorization(View view) {
// 查询运动健康应用隐私管理是否关联Health Service Kit
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this)
.getHealthAppAuthorization()
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Log.i("TAG", "getHealthAppAuthorization failed");
}
})
.addOnSuccessListener(new OnSuccessListener<Boolean>() {
@Override
public void onSuccess(Boolean result) {
String res = result ? "success" : "failed";
Log.i("TAG", "getHealthAppAuthorization is " + res);
}
});
}fun getHealthAppAuthorization(view: View) {
// 查询运动健康应用隐私管理是否关联Health Service Kit
// 返回的结果显示在手机屏幕上
// 请注意此处的this为Activity对象
HuaweiHiHealth.getSettingController(this)
.getHealthAppAuthorization()
.addOnFailureListener { e -> printFailureMessage(e, "getHealthAppAuthorization") }
.addOnSuccessListener { result ->
val res = if (result) "success" else "failed"
Log.i("TAG","getHealthAppAuthorization is $res")
}
}
}Method |
|---|
public Intent requestAuthorizationIntent(String[] scopes, boolean enableHealthAuth) 获取集成华为账号登录授权和华为运动健康App授权流程的Intent,可以通过startActivityForResult拉起授权流程页面。 |
Parameters
Name | Description |
|---|---|
scopes | 申请授权的Scope权限数组。 |
enableHealthAuth | 运动健康App授权流程开关,true表示使能运动健康App授权流程,false表示不使能。 |
Returns
Type | Description |
|---|---|
Intent | 启动授权流程Activity的Intent,可通过startActivityForResult启动。 |
// 日志Tag
private static final String TAG = "HealthKitAuthActivity";
// 通过startActivityForResult方式拉起授权流程界面的请求码,具体数值开发者可以自行定义
private static final int REQUEST_AUTH = 1000;
private void requestAuth() {
// 添加需要申请的权限,这里只是举例说明,开发者需要根据实际情况添加所需的权限
String[] scopes = new String[] {
// 查看和存储Health Service Kit中的步数
Scopes.HEALTHKIT_STEP_READ, Scopes.HEALTHKIT_STEP_WRITE,
// 查看和存储Health Service Kit中的身高体重
Scopes.HEALTHKIT_HEIGHTWEIGHT_READ, Scopes.HEALTHKIT_HEIGHTWEIGHT_WRITE,
// 查看和存储Health Service Kit中的心率数据
Scopes.HEALTHKIT_HEARTRATE_READ, Scopes.HEALTHKIT_HEARTRATE_WRITE};
// 获取授权流程Intent,true表示开启运动健康App授权流程,false表示不开启
// 请注意此处的this为Activity对象
Intent intent =
HuaweiHiHealth.getSettingController(this).requestAuthorizationIntent(scopes, true);
// 打开授权流程页面,此方法必须是在Activity中调用
Log.i(TAG, "start authorization activity");
startActivityForResult(intent, REQUEST_AUTH);
}private fun requestAuth() {
// 添加需要申请的权限,这里只是举例说明,开发者需要根据实际情况添加所需的权限
val scopes = arrayOf(
// 查看和存储Health Service Kit中的步数
Scopes.HEALTHKIT_STEP_READ, Scopes.HEALTHKIT_STEP_WRITE,
// 查看和存储Health Service Kit中的身高体重
Scopes.HEALTHKIT_HEIGHTWEIGHT_READ, Scopes.HEALTHKIT_HEIGHTWEIGHT_WRITE,
// 查看和存储Health Service Kit中的心率数据
Scopes.HEALTHKIT_HEARTRATE_READ, Scopes.HEALTHKIT_HEARTRATE_WRITE
)
// 获取授权流程Intent
// 请注意此处的this为Activity对象
val intent = HuaweiHiHealth.getSettingController(this).requestAuthorizationIntent(scopes, true)
// 打开授权流程页面
Log.i(TAG, "start authorization activity");
startActivityForResult(intent, REQUEST_AUTH)
}
companion object {
// 日志Tag
private val TAG = "HealthKitAuthActivity"
// 通过startActivityForResult方式拉起授权流程界面的请求码,具体数值开发者可以自行定义
private val REQUEST_AUTH = 1000
}Method |
|---|
public HealthKitAuthResult parseHealthKitAuthResultFromIntent(Intent intent) 从登录授权流程返回的Intent中解析授权结果。 |
Parameters
Name | Description |
|---|---|
intent | 登录授权流程返回的Intent。 |
Returns
Type | Description |
|---|---|
从Intent中解析出的授权结果。 |
// 日志Tag
private static final String TAG = "HealthKitAuthActivity";
// 通过startActivityForResult方式拉起授权流程界面的请求码,具体数值开发者可以自行定义
private static final int REQUEST_AUTH = 1000;
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 只处理授权流程的响应
if (requestCode == REQUEST_AUTH) {
// 从intent中获取授权响应结果
// 请注意此处的this为Activity对象
HealthKitAuthResult result = HuaweiHiHealth.getSettingController(this).parseHealthKitAuthResultFromIntent(data);
if (result == null) {
Log.w(TAG, "authorization fail");
return;
}
if (result.isSuccess()) {
Log.i(TAG, "authorization success");
} else {
Log.w(TAG, "authorization fail, errorCode:" + result.getErrorCode());
}
}
}override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// 只处理授权流程的响应
if (requestCode == REQUEST_AUTH) {
// 从intent中获取授权响应结果
// 请注意此处的this为Activity对象
val result = HuaweiHiHealth.getSettingController(this).parseHealthKitAuthResultFromIntent(data)
if (result == null) {
Log.w(TAG, "authorization fail")
return
}
if (result.isSuccess) {
Log.i(TAG, "authorization success")
} else {
Log.w(TAG, "authorization fail, errorCode:" + result.errorCode)
}
}
}
companion object {
// 日志Tag
private val TAG = "HealthKitAuthActivity"
// 通过startActivityForResult方式拉起授权流程界面的请求码,具体数值开发者可以自行定义
private val REQUEST_AUTH = 1000
}