1.效果如下所示:
2.項目介紹:
開發環境:DevEco Studio 3.0 Beta2 3.0.0.800? Empty Ability Template? Java
通過此項目,主要是學習如何在HarmonyOS上集成遠程配置、應用內消息、AppLinking鏈接、云存儲和分析服務等技術。
3.項目結構:
4.在Gradle文件中設置AppGallery Connect的相關依賴和SDK包:
a) 設置項目級 build.gradle:
apply plugin: 'com.huawei.ohos.app'
buildscript {
repositories {
maven {
url 'https://repo.huaweicloud.com/repository/maven/'
}
maven {
url 'https://developer.huawei.com/repo/'
}
}
...
dependencies {
classpath 'com.huawei.ohos:hap:3.0.5.2'
classpath 'com.huawei.ohos:decctest:1.2.7.2'
// 添加agconnect服務依賴
classpath 'com.huawei.agconnect:agcp-harmony:1.3.0.300'
}
}
allprojects {
repositories {
maven {
url 'https://repo.huaweicloud.com/repository/maven/'
}
maven {
url 'https://developer.huawei.com/repo/'
}
}
}
b) 設置模塊級 build.gradle:
// Add the information to the bottom of the file.
apply plugin: 'com.huawei.ohos.hap'
apply plugin: 'com.huawei.agconnect'
apply plugin: 'com.huawei.ohos.decctest'
...
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
testImplementation 'junit:junit:4.13.1'
ohosTestImplementation 'com.huawei.ohos.testkit:runner:2.0.0.200'
// 添加分析服務依賴
implementation 'com.huawei.hms:hianalytics-harmony:6.3.2.301'
// AGC基礎SDK
implementation 'com.huawei.agconnect:agconnect-core-harmony:1.3.0.300'
// 調測設備AAID SDK
implementation 'com.huawei.agconnect:agconnect-credential-harmony:1.3.0.300'
// 集成應用內消息SDK
implementation 'com.huawei.agconnect:agconnect-appmessaging-harmony:1.3.0.300'
// 添加遠程配置依賴
implementation 'com.huawei.agconnect:agconnect-remoteconfig-harmony:1.3.0.300'
// 添加AppLinking SDK
implementation 'com.huawei.agconnect:agconnect-applinking-harmony:1.3.0.300'
}
5.云存儲:
6.遠程配置:
7.應用內消息:
8.App Linking:
9.添加配置文件:
在AGC管理平臺打開“項目設置”,下載配置文件“agconnect-services.json”,將下載的JSON文件放到DevEco Studio 項目的應用級目錄下:
10.分析服務:
由于應用集成了華為分析服務,完成相關配置后,打開應用,會彈出定制消息,此時會上報應用信息到AGC管理平臺。
11.程序代碼:
ability_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:alignment="top"
ohos:orientation="vertical">
<Image
ohos:id="$+id:image"
ohos:height="match_content"
ohos:width="match_parent"
ohos:image_src="$media:first" />
</DirectionalLayout>
MainAbility:
package com.example.codechallengesdemo;
import com.example.codechallengesdemo.slice.MainAbilitySlice;
import com.huawei.agconnect.AGConnectInstance;
import com.huawei.hms.analytics.HiAnalytics;
import com.huawei.hms.analytics.HiAnalyticsInstance;
import com.huawei.hms.analytics.HiAnalyticsTools;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
// 初始化AGC SDK
AGConnectInstance.initialize(getAbilityPackage());
// 打開SDK日志開關
HiAnalyticsTools.enableLog();
// 初始化hiAnalytics kit
HiAnalyticsInstance instance = HiAnalytics.getInstance(this);
}
}
MainAbilitySlice:
package com.example.codechallengesdemo.slice;
import com.example.codechallengesdemo.ResourceTable;
import com.huawei.agconnect.appmessaging.AGConnectAppMessaging;
import com.huawei.agconnect.appmessaging.AGConnectAppMessagingOnClickListener;
import com.huawei.agconnect.appmessaging.model.Action;
import com.huawei.agconnect.appmessaging.model.AppMessage;
import com.huawei.agconnect.common.api.AGCInstanceID;
import com.huawei.agconnect.remoteconfig.AGConnectConfig;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Image;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
import ohos.media.audio.*;
import ohos.media.codec.Codec;
import ohos.media.common.BufferInfo;
import ohos.media.common.Source;
import java.nio.ByteBuffer;
public class MainAbilitySlice extends AbilitySlice {
private AGConnectAppMessaging appMessaging;
private static final String TAG = MainAbilitySlice.class.getName();
private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD000F00, TAG);
private static final int SAMPLE_RATE = 44100;
private static final int BUFFER_SIZE = 1024;
private AudioRenderer audioRenderer;
private Codec codec;
long interval = 0;
private String flag = "late";
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
// 初始化音頻播放相關參數
initAudioRenderer();
// 獲取AAID
getAAID();
//配置應用內消息
configAppMessage();
// 讀取遠程配置
readRemoteConfig();
}
安裝應用后,打開應用程序,會播放音樂,更換應用內圖片,同時彈出定制消息,點擊按鈕跳轉到遠程配置的鏈接。至此,HarmonyOS定制告白消息項目就結束了。
|